python求单链表的长度

阅读: 评论:0

python求单链表的长度

python求单链表的长度

# coding:utf-8

class Node(object):

"""節點0"""

def __init__(self, elem):

self.elem = elem

< = None

# node = None(100)

class SingleLinkList(object):

"""單向循環鏈表"""

def __init__(self, node=None):

self.__head = node

if node:

< = node

def is_empty(self):

"""鏈表是否爲空"""

return self.__head == None

def length(self):

"""鏈表長度"""

if self.is_empty():

return 0

# cur遊樸,用來移動遍歷節點

cur = self.__head

# count記錄數量

count = 1

!= self.__head:

count += 1

cur =

return count

def travel(self):

"""遍歷整個鏈表"""

cur = self.__head

!= self.__head:

print(cur.elem, end=" ")

cur =

# 退出循環, cur指向尾節點,但尾節點的元素未打印

print(cur.elem)

def add(self, item):

"""鏈表頭部添加元素,頭插法"""

node = Node(item)

if self.is_empty():

self.__head = node

< = node

else:

cur = self.__head

!= self.__head:

cur =

# 退出循環, cur指向尾節點

< = self.__head

self.__head = node

# = node

< = self,__head

def append(self, item):

"""鏈表尾部添加元素,尾插法"""

node = Node(item)

if self.is_empty():

self.__head = node

< = node

else:

cur = self.__head

!= self.__head:

cur =

# =

< = self.__head

< = node

def insert(self, pos, item):

"""指定位置添加元素

:param pos 從0開始

"""

if pos <= 0:

self.add(item)

elif pos > (self.length()-1):

self.append(item)

else:

pre = self.__head

count = 0

while count < (pos-1):

count += 1

pre =

# 當循環退出後,pre指向pos-1位置

node = Node(item)

< =

< = node

def remove(self, item):

"""刪除節點"""

cur = self.__head

pre = None

while cur != None:

if cur.elem == item:

# 先判斷此結點是否是頭節點

# 頭節點

if cur == self.__head:

self.__head =

else:

< =

break

else:

pre = cur

cur =

def search(self, item):

"""查找節點是否存在"""

cur = self.__head

while cur != None:

if cur.elem == item:

return True

else:

cur =

return False

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(3)

ll.append(4)

ll.append(5)

ll.append(6)

# 8 1 2 3 4 5 6

ll.insert(-1, 9) # 9 8 123456

ll.insert(3, 100) # 9 8 1 100 2 3456

ll.insert(10, 200) # 9 8 1 100 23456 200

本文发布于:2024-01-30 15:27:37,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659966020983.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:Travel by Bike
标签:长度   链表   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23