Dongsheng Ruan wrote:
> with a cell class like this:
>
> #!/usr/bin/python
>
> import sys
>
> class Cell:
>
>  def __init__( self, data, next=None ):
>   self.data = data
>   self.next = next
>
>  def __str__( self ):
>   return str( self.data )
>
>  def echo( self ):
>   print self.__str__() 
>   
If you really want a list (as Python defines a list - with all the methods) 
then you should use Python's lists.  They are quite efficient and convenient:

l = [Cell(1), Cell(2), Cell(3)]

However, if what you want is each cell to refer to a next cell (which after all 
is what a linked list does), then you already have it with the next attribute.  
(In other languages you might implement 'next' as a pointer, while in Python we 
call it a reference -- but it amounts to the same thing.)  Create it this way:

c = Cell(3)
b = Cell(2, c) 
a = Cell(1, b)

or

a = Cell(1, Cell(2, Cell(3)))

However, I'll repeat this:  The concept of a linked list if a figment of 
languages with pointer data types.  Python abstracts that by allowing 
attributes to contain references to other objects.  However, you're much better 
off if you can use Python's list data structure rather than try to emulate an 
outdated concept in a modern language.

Gary Herron



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to