在 Python 中使用链表的最简单方法是什么?在 Scheme 中,链表的定义很简单,即“(1 2 3 4 5)。Python 的列表 [1, 2, 3, 4, 5] 和元组 (1, 2, 3, 4, 5) 实际上并不像......
在 Python 中使用链表的最简单方法是什么?在 Scheme 中,链表的定义很简单 '(1 2 3 4 5)
.
Python 的列表 [1, 2, 3, 4, 5]
和元组 (1, 2, 3, 4, 5)
并不是链表,链表具有一些不错的特性,例如常量时间连接,以及能够引用其中的不同部分。如果使它们不可变,那么它们就真的很容易使用!
我前几天写了这个
#! /usr/bin/env python
class Node(object):
def __init__(self):
self.data = None # contains the data
self.next = None # contains the reference to the next node
class LinkedList:
def __init__(self):
self.cur_node = None
def add_node(self, data):
new_node = Node() # create a new node
new_node.data = data
new_node.next = self.cur_node # link the new node to the 'previous' node.
self.cur_node = new_node # set the current node to the new one.
def list_print(self):
node = self.cur_node # cant point to ll!
while node:
print node.data
node = node.next
ll = LinkedList()
ll.add_node(1)
ll.add_node(2)
ll.add_node(3)
ll.list_print()