无序列表的实现

链表实现:节点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节点的引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值