链表实现:节点Node
链表实现的最基本元素是Node
每个接待你至少包含两个信息: 数据项本身,以及指向下一个接待你的引用信息
注意NEXT为None的意义是没有下一个节点了 这个很重要
class Node:
def init(self,initdata):
self.data = initdata
self.next = NONE
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(sekf,newdata):
self.data = newdata
def setNext(self,newnext):
self.next= newnext
可以采用连接节点的方式构建数据集来实现无需表
链表的第一个和最后一个节点最重要
如果像访问链表中所有节点,就必须从第一个节点开始沿着链接遍历下去
表头 head mylist= UNODERDLIST()
PRINT mylist.head >> None
add实现方法
size从链条头head开始遍历到表尾同时用
search 也要用表头head开始遍历 ,同时判断当前节点的数据项是否目标
while current != None and not found:
if curremt.getData() ==item:
found = True
else:
current = current .getNext()
return found
remove 首先要找到item,这个过程跟search一样,但在删除节点时需要特别的 技巧
current 指向当前匹配数据项的节点 而删除需要爸爸前一个结点的next指向current的洗一个节点 所以我们在search current的同时,还要维护前一个previous节点的引用