100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python数据结构与算法:单向链表

python数据结构与算法:单向链表

时间:2022-09-04 16:25:57

相关推荐

python数据结构与算法:单向链表

单链表:python实现及其对应的增删查检 操作

##################### P4.1-P4.8 单向链表 ############################coding:utf-8class Node(object):def __init__(self,elem):self.elem = elemself.next = Noneclass SinglelinkList(object):"""SinglelinkList"""def __init__(self,node = None):#默认参数self.__head = nodedef is_empty(self):return self.__head == Nonedef travel(self):"""遍历链表"""cur = self.__headwhile cur != None:print(cur.elem,end=" ")cur= cur.nextprint("")def length(self):"""length of list 遍历 借助 Cursor 指针或者游标计数"""cur = self.__head#cur游标 遍历节点 不断移动count = 0while cur != None:# cur.next = Nonecount+=1cur = cur.nextreturn countdef __add__(self, item):"""nedd to add node"""node = Node(item)node.next = self.__headself.__head = nodedef append(self,item):node = Node(item) #node 实例化if self.is_empty():self._head = nodeelse:cur = self.__headwhile cur.next != None:cur = cur.nextcur.next = nodedef insert(self,pos,item):""":param pos 从0 开始 """pre = self.__headcount = 0if pos<0:self.__add__(item)elif pos>(self.length()-1):self.append(item)else:while (count<(pos-1)):count+=1pre = pre.nextnode =Node(item)node.next = pre.nextpre.next = nodedef remove(self,item):cur = self.__headpre = Nonewhile cur!= None:if cur.elem == item:if pre ==None:self.__head=cur.nextelse:pre.next = cur.nextbreakelse:pre = curcur = cur.nextdef search(self,item):cur = self.__headwhile cur!= None:if cur.elem == item:return Trueelse:cur = cur.nextreturn False# single_obe = SinglelinkList()if __name__ =="__main__":ll = SinglelinkList()print(ll.is_empty())print(ll.length())ll.append(1)print(ll.is_empty())print(ll.length())ll.append(2)ll.__add__(8)ll.append(1)ll.append(3)ll.append(1)ll.append(3)ll.insert(-1,9)ll.insert(4, 119)ll.insert(8, 1234)ll.travel()### 9 8 1 3 119 1 3 1234ll.remove(1234)ll.travel()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。