python单链表的基本操作,python单向链表

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: