日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

数据结构与算法-python描述-单链表

發布時間:2023/11/29 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构与算法-python描述-单链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# coding:utf-8# 單鏈表的相關操作: # is_empty() 鏈表是否為空 # length() 鏈表長度 # travel() 遍歷整個鏈表 # add(item) 鏈表頭部添加元素 # append(item) 鏈表尾部添加元素 # insert(pos, item) 指定位置添加元素 # remove(item) 刪除節點 # search(item) 查找節點是否存在class Node(object):"""節點"""def __init__(self, elem):# 數據區self.elem = elem# 指向下一個節點self.next = Noneclass SingleLikedList(object):"""單鏈表"""def __init__(self, node = None):# 頭節點self.__head = nodedef is_empty(self):"""鏈表是否為空"""return self.__head is Nonedef length(self):"""鏈表長度"""cur = self.__headcount = 0while cur != None:count += 1cur = cur.nextreturn countdef travel(self):"""遍歷整個鏈表"""cur = self.__headwhile cur != None:print(cur.elem, end=" ")cur = cur.nextprint("")def add(self, item):"""鏈表頭部添加元素,頭插法"""# 創建一個Nodenode = Node(item)node.next = self.__headself.__head = nodedef append(self, item):"""鏈表尾部添加元素,尾插法"""# 創建一個Nodenode = Node(item)# 如果鏈表為空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開始"""if pos <= 0:self.add(item)elif pos > (self.length() - 1):self.append(item)else:pre = self.__headcount = 0# 1 2 3 4 5 6# pos = 3, item = 9while count < (pos - 1):count += 1pre = pre.next# 當循環結束后,pre指向要插入位置的前一個,即pos-1的位置node = Node(item)node.next = pre.nextpre.next = nodedef remove(self, item):"""刪除節點"""pre = Nonecur = self.__headwhile cur != None:if cur.elem == item:# 判斷此節點是否為頭節點if cur == self.__head: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 Falseif __name__ == "__main__":sll = SingleLikedList()print("initialized...")print("is_empty:", sll.is_empty())print("length:", sll.length())sll.append(1)print("is_empty:", sll.is_empty())print("length:", sll.length())sll.append(2)sll.append(3)sll.append(4)sll.append(5)sll.append(6)sll.add(7)sll.travel()print("before insert exist -5:",sll.search(-5))sll.insert(-5, -5)print("after insert exist -5:", sll.search(-5))sll.travel()

轉載于:https://www.cnblogs.com/coderwjq/p/7305325.html

總結

以上是生活随笔為你收集整理的数据结构与算法-python描述-单链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。