python单链表的基本操作,python单向链表
#编码:utf-8
importsys
类lnode(:
self.elem=elem#节点的值
self.next=next#指向下一个节点
returnself.elem
returnself.next
类链接列表(对象) :
self.head=L#定义头部节点
self.length=0#链表元素数
#链表是否为空
ifself.head.nextisNone:
返回真
否则:
返回假
回归自我。长度
#添加尾部
ifself.head.nextisNone:
self.head.next=newNode
否则:
p=self.head
whilep.nextisnotNone:
下一个
p.next=newNode
self.length=1
#添加头部
ifself.isempty():
self.head.next=newNode
否则:
self.head.next=newNode
self.length=1
#插入到指定元素的位置之后
ifself.find(elem )==-1:
打印% sinthelinklist % elem
否则:
#在链表中发现元素初步的时
p=自我发现(元素)
ifp.nextisNone:
p.next=newNode
否则:
p.next=newNode
self.length=1
#在指定元素的位置之前插入
ifself.find(elem )==-1:
打印% sinnotthelinklist“% elem
否则:
p=self.head
q=self.find(elem)))))))))))。
whilepisnotNone:
ifp.next==q:
布雷克
下一个
p.next=newNode
self.length=1
#遍历链表
ifself.head.nextisNone:
打印"空"
返回
否则:
p=self.head
whilep.nextisnotNone:
下一个
sys.stdout.write ("% s"%"p.elem))。
打印
返回
#查找元素并返回指向该元素的节点
找到#元素返回节点。未找到返回-1
ifself.isempty(:
打印对不起,我是空的
否则:
p=self.head
whilepisnotNone:
ifp.elem==elem:
返回函数
否则:
下一个
#修改指定元素
ifself.find(Elem)!=-1:
#找到后
p=自我发现(元素)
p.elem=newelem
返回0
否则:
打印% sisnotinthelinklist“% elem”
#删除指定元素
ifself.find(Elem)!=-1:
#找到后
p=自我发现(元素)
q=自我。海德
whileq。下一个!=p:
q=q。下一个
q.next=p.next
p.next=无
否则:
打印% sisnotinthelinklist“% elem”
#创建链表
ll=链表()
printll.isempty(
#在末尾添加元素
ll.append(3))。
ll.append(4))。
ll.append(5))。
ll.for_each(
printll.getlength(
#首先添加元素
ll.headpush(2))。
ll.for_each(
printll.getlength(
#查找元素
printll.find(3).初步的
ll.insertafter (3,3.3))。
ll.for_each(
printll.getlength(
#测试后推法
ll.insertafter (1,1.1))。
#测试前推法
ll。在(5,3.9)之前插入。
ll.for_each(
printll.getlength(
#修改指定元素
ll.modify (3.9,44))。
ll.for_each(
ll.modify (3.8,88))。
#删除指定元素
ll .德尔节点(3.3)).
ll.for_each(
ll.delnode(2()2)))))))。
ll.delnode(2()2)))))))。
ll .德尔节点(3)).
ll .德尔节点(4)).
ll .德尔节点(44岁)。
ll .德尔节点(5)).
ll.for_each(
if__name__==__main__ :
主() )
真的
3 4 5
3
2 3 4 5
四
3
2 3 3.3 4 5
5
一在链接列表中
2 3 3.3 4 3.9 5
6
2 3 3.3 4 44 5
3.8不在链接列表中
2 3 4 44 5
2不在链接列表中
空泡茶
处理完成的带出口代码0
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。