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

歡迎訪問 生活随笔!

生活随笔

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

python

python 单链表的操作

發布時間:2023/12/15 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 单链表的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈表由一系列不必在內存中相連的結構構成,這些對象按線性順序排序。每個結構含有表元素和指向后繼元素的指針。最后一個單元的指針指向NULL。為了方便鏈表的刪除與插入操作,可以為鏈表添加一個表頭。

單鏈表 雙鏈表

?

鏈表的常用方法:

  • LinkedList() 創建空鏈表,不需要參數,返回值是空鏈表
  • is_empty() 測試鏈表是否為空,不需要參數,返回值是布爾值
  • append(data) 在尾部增加一個元素作為列表最后一個。參數是要追加的元素,無返回值
  • iter() 遍歷鏈表,無參數,打印元素。
  • insert(index,value) 插入一個元素,參數為插入元素的索引和值
  • remove(index)移除1個元素,參數為要移除的元素或索引,并修改鏈表
  • size() 返回鏈表的元素數,不需要參數,返回值是個整數
  • search(item) 查找鏈表某元素,參數為要查找的元素,返回是布爾值
  • python方法實現:

    class Node(object):def __init__(self, data, next = None):self.data = dataself.next = nextclass Singlelinklist(object):#創建空鏈表def __init__(self):self.head = Noneself.tail = None#測試是否為空def isempty(self):return(self.head is None)#尾部增加元素def append(self, data):node = Node(data)if self.head is None:self.head = nodeself.tail = nodeelse:self.tail.next = nodeself.tail = node#刪除一個元素def remove(self, index):if self.head is None: #empty listprint('The linklist is empty!')returntemp = self.headtemp_idx = 0while temp_idx < index - 1:temp = temp.nextif temp is None:print('List length less than index!')returntemp_idx += 1if self.head is self.tail: #list only have one nodeself.head = Noneself.tail = Nonereturnif index == 0: #remove the first nodeself.head = temp.nextreturnif temp.next is None: #remove the last nodeself.tail = temptemp.next = temp.next.next#遍歷鏈表def iter(self):if not self.head:returntemp = self.headprint(temp.data)while temp.next:temp = temp.nextprint(temp.data)#插入一個元素def insert(self, index, value):if self.head is None:print('The list is empty!')returntemp = self.headtemp_idx = 0while temp_idx < index - 1:temp = temp.nexttemp_idx += 1node = Node(value)node.next = temp.nexttemp.next = nodeif node.next is None:self.tail = node#獲取元素數def size(self):if self.head is None:print('The list is empty!')returntemp = self.headcount = 0while temp is not None:count += 1temp = temp.nextreturn count#查找一個元素def search(self, item):found = Falsetemp = self.headwhile temp is not None and not found:if temp.data == item:found = Trueelse:temp = temp.nextreturn foundif __name__ == '__main__':link = Singlelinklist()link.append(3)link.append(5)link.append(6)link.insert(1, 4)link.iter()link.remove(1)print(link.size())print(link.search(3))

    ?

    總結

    以上是生活随笔為你收集整理的python 单链表的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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