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

歡迎訪問 生活随笔!

生活随笔

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

python

用python 中的链表 实现 截取其中一部分_Python数据结构——链表的实现

發布時間:2025/3/19 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python 中的链表 实现 截取其中一部分_Python数据结构——链表的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

刪除操作可以通過修改一個指針來實現。

插入操作需要執行兩次指針調整。

1. 單向鏈表的實現

1.1 Node實現

每個Node分為兩部分。一部分含有鏈表的元素,可以稱為數據域;另一部分為一指針,指向下一個Node。

class Node():

__slots__=['_item','_next'] #限定Node實例的屬性

def __init__(self,item):

self._item=item

self._next=None #Node的指針部分默認指向None

def getItem(self):

return self._item

def getNext(self):

return self._next

def setItem(self,newitem):

self._item=newitem

def setNext(self,newnext):

self._next=newnext

1.2 SinglelinkedList的實現

class SingleLinkedList():

def __init__(self):

self._head=None #初始化鏈表為空表

self._size=0

1.3 檢測鏈表是否為空

def isEmpty(self):

return self._head==None

1.4 add在鏈表前端添加元素

def add(self,item):

temp=Node(item)

temp.setNext(self._head)

self._head=temp

1.5 append在鏈表尾部添加元素

def append(self,item):

temp=Node(item)

if self.isEmpty():

self._head=temp #若為空表,將添加的元素設為第一個元素

else:

current=self._head

while current.getNext()!=None:

current=current.getNext() #遍歷鏈表

current.setNext(temp) #此時current為鏈表最后的元素

1.6 search檢索元素是否在鏈表中

def search(self,item):

current=self._head

founditem=False

while current!=None and not founditem:

if current.getItem()==item:

founditem=True

else:

current=current.getNext()

return founditem

1.7 index索引元素在鏈表中的位置

def index(self,item):

current=self._head

count=0

found=None

while current!=None and not found:

count+=1

if current.getItem()==item:

found=True

else:

current=current.getNext()

if found:

return count

else:

raise ValueError,'%s is not in linkedlist'%item

1.8 remove刪除鏈表中的某項元素

def remove(self,item):

current=self._head

pre=None

while current!=None:

if current.getItem()==item:

if not pre:

self._head=current.getNext()

else:

pre.setNext(current.getNext())

break

else:

pre=current

current=current.getNext()

1.9 insert鏈表中插入元素

def insert(self,pos,item):

if pos<=1:

self.add(item)

elif pos>self.size():

self.append(item)

else:

temp=Node(item)

count=1

pre=None

current=self._head

while count

count+=1

pre=current

current=current.getNext()

pre.setNext(temp)

temp.setNext(current)

全部代碼

class Node():

__slots__=['_item','_next']

def __init__(self,item):

self._item=item

self._next=None

def getItem(self):

return self._item

def getNext(self):

return self._next

def setItem(self,newitem):

self._item=newitem

def setNext(self,newnext):

self._next=newnext

class SingleLinkedList():

def __init__(self):

self._head=None #初始化為空鏈表

def isEmpty(self):

return self._head==None

def size(self):

current=self._head

count=0

while current!=None:

count+=1

current=current.getNext()

return count

def travel(self):

current=self._head

while current!=None:

print current.getItem()

current=current.getNext()

def add(self,item):

temp=Node(item)

temp.setNext(self._head)

self._head=temp

def append(self,item):

temp=Node(item)

if self.isEmpty():

self._head=temp #若為空表,將添加的元素設為第一個元素

else:

current=self._head

while current.getNext()!=None:

current=current.getNext() #遍歷鏈表

current.setNext(temp) #此時current為鏈表最后的元素

def search(self,item):

current=self._head

founditem=False

while current!=None and not founditem:

if current.getItem()==item:

founditem=True

else:

current=current.getNext()

return founditem

def index(self,item):

current=self._head

count=0

found=None

while current!=None and not found:

count+=1

if current.getItem()==item:

found=True

else:

current=current.getNext()

if found:

return count

else:

raise ValueError,'%s is not in linkedlist'%item

def remove(self,item):

current=self._head

pre=None

while current!=None:

if current.getItem()==item:

if not pre:

self._head=current.getNext()

else:

pre.setNext(current.getNext())

break

else:

pre=current

current=current.getNext()

def insert(self,pos,item):

if pos<=1:

self.add(item)

elif pos>self.size():

self.append(item)

else:

temp=Node(item)

count=1

pre=None

current=self._head

while count

count+=1

pre=current

current=current.getNext()

pre.setNext(temp)

temp.setNext(current)

if __name__=='__main__':

a=SingleLinkedList()

for i in range(1,10):

a.append(i)

print a.size()

a.travel()

print a.search(6)

print a.index(5)

a.remove(4)

a.travel()

a.insert(4,100)

a.travel()

總結

以上是生活随笔為你收集整理的用python 中的链表 实现 截取其中一部分_Python数据结构——链表的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 寡妇av| 亚洲视频在线观看 | 国产视频福利 | 国产精品1024 | 不卡视频一区二区 | 青青操免费在线视频 | 一区二区三区视频免费在线观看 | 亚洲国产精品综合久久久 | 国产黄色大片在线观看 | 中文字幕一区二区三区乱码不卡 | 中文字幕在线2018 | 亚洲色图综合网 | 香蕉视频黄在线观看 | 一本色道久久综合狠狠躁的推荐 | 伊人免费视频 | 丁香综合激情 | 成人高清| 国产精品videos | 成年人免费毛片 | 青青青草视频在线 | 免费小视频在线观看 | 国产乱淫av麻豆国产免费 | 狠狠操夜夜操 | 72成人网| 伊人久久成人 | 开心激情亚洲 | 四虎成人av| 干干干操操操 | 一区二区三区免费 | 欧美aaaaaaa| 成人精品视频网站 | 欧洲美一区二区三区亚洲 | 欧美在线 | 99伊人网 | 国产激情久久久 | xx69欧美| 黑人操亚洲美女 | 黑人高潮一区二区三区在线看 | 伊人久久97 | 中国黄色录像一级片 | 国产精品自产拍高潮在线观看 | 中国国语农村大片 | 老牛影视av一区二区在线观看 | 国产露出视频 | 岛国av不卡 | 欧美 另类 交 | 超碰人人草 | 亚洲乱码中文字幕 | 国产综合久久久 | 精品一区二区三区视频在线观看 | 国产欧美日韩高清 | 草草影院地址 | 在线观看视频日韩 | 狠狠撸狠狠干 | 日韩一级免费 | 亚洲精品乱码久久久久久9色 | 国产精品视频在线观看免费 | 香蕉国产精品 | 色婷婷在线观看视频 | 亚洲一区你懂的 | caoprom在线 | 五月激情五月婷婷 | 免费看成人毛片 | 四虎网址在线观看 | 亚洲欧洲综合网 | 亚洲成人自拍偷拍 | 成年在线观看 | 免费日韩网站 | 国产高清免费视频 | 日韩欧美黄色网址 | 人妻互换免费中文字幕 | 老色批影院 | 少妇高潮毛片色欲ava片 | 狠狠插狠狠操 | 97高清国语自产拍 | www.夜色 | 日韩毛片在线免费观看 | 人妻视频一区 | 99国产精品视频免费观看一公开 | 日韩在线导航 | 日韩美女免费视频 | 精品一区二区国产 | 神马三级我不卡 | www.久久精品.com | 欧美日韩一区二区视频观看 | jzzijzzij亚洲成熟少妇在线播放 狠狠躁日日躁夜夜躁2022麻豆 | 色图18p | 先锋影音制服丝袜 | 高跟鞋av | 免费在线看黄色片 | 国产午夜免费福利 | 国产精品久久久久久av | 亚洲一卡二卡三卡四卡 | 国产熟女高潮一区二区三区 | 男人的天堂视频在线观看 | 亚洲综合在线第一页 | 男裸体无遮挡网站 | 人人舔人人插 | 在线免费h |