A question about reference in Python.
James Mills
prologic at shortcircuit.net.au
Mon Dec 8 01:09:13 EST 2008
Hi,
This is really really really pointless code and a really really pointless
exercise, but nonetheless, here is a very very basic and minimal
implementation of what you're expecting. This should almost
*never* be done in Python! Python is a superior dynamic programming
language, but it's NOT C!
Here goes:
jmills at atomant:~/tmp$ ./list.py
>>> x[0]
0
>>> x[1]
1
>>> x[2]
2
>>> x[3]
3
>>> x[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "./list.py", line 36, in __getitem__
return node.value
AttributeError: 'NoneType' object has no attribute 'value'
>>>
jmills at atomant:~/tmp$
And the code:
#!/home/jmills/bin/python -i
class Node(object):
value = None
prev = None
next = None
def __init__(self, value, prev=None, next=None):
self.value = value
self.prev = prev
self.next = next
class List(object):
data = None
def __init__(self, *seq):
if seq:
first = prev = node = None
for x in seq:
if not first:
first = Node(x)
prev = node = first
else:
node = Node(x, prev)
prev.next = node
prev = node
self.data = first
def __getitem__(self, x):
node = self.data
for i in xrange(x):
node = node.next
return node.value
x = List(0, 1, 2, 3)
Notes:
I have not implemented any error checking whatsoever.
I have not implemented any of your normal list
operations whatsoever (except 1). __getitem__.
Have fun,
cheers
James
On Mon, Dec 8, 2008 at 3:26 PM, Group <kermit.group at gmail.com> wrote:
> Hello, I'm studying algorithom. For concentrating on the question itself, I
> intend to use Python to implement the algorithoms.
>
> Now, I want to write a Red-Black Tree, and a List structure. In C/C++, I can
> use pointers to refer to children notes (or next notes). But, in Python,
> how
> can I do it? Except the sequence, I know not any way.
>
> You'd better help me understan how can I transform the following C code into
> Python:
>
> /* a List */
> struct {
> int data;
> int *next;
> int *prev;
> }
>
> That's all. Thanks!
> Kermit
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
--
--
-- "Problems are solved by method"
More information about the Python-list
mailing list