python中基本資料結構(三)

2022-09-03 23:03:16 字數 2807 閱讀 9415

鍊錶是一種非連續性的資料結構,資料元素的邏輯順序是按照鍊錶的指標實現,所以鍊錶由一系列的節點組成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。

class

node():

def__init__(self,num,next=none):

self.num=num

self.next=next

class

linklist():

def__init__

(self):

self.head=none

def produce(self):#

生產十個節點

wei=none

for i in range(10):

one=node(i+1)

if self.head==none:#

如果是空的,那麼此節點就是頭,頭尾都指向此節點

self.head=one

wei=one

else

: wei.next=one#

把新節點放在尾節點後面。

wei=one #

此節點變成尾節點

def dayin(self):#

列印鍊錶

p=self.head

while p!=none:

print

(p.num)

p=p.next

def charu(self):#

鍊錶插入

wz=int(input("

請輸入插入位置:"))

data= int(input("

請輸入插入的值:"))

if wz==1:#

如果插入的位置是1

one=node(data)

one.next=self.head

self.head=one

else

: i=1p=self.head

while iand p!=none:#

查詢 要插入位置的前乙個元素

p=p.next

i+=1

if p==none:#

如果鍊錶長度沒有要插入的位置

print("

位置異常")

else

: one=node(data)

one.next=p.next #

p.next=one #

在將此節點鏈結到前一節點的後面

defshanchu(self):

if self.head==none:

print("

別刪除了,空空如也")

else

: wz=int(input("

請輸入要刪除的位置"))

if wz==1:#

刪除的如果是頭結點

print("

您刪除的是第乙個節點,內容是

",self.head.num)

self.head=self.head.next

else

: i=1p=self.head

while iand p!=none:#

查詢刪除元素的前乙個位置

i+=1p=p.next

if p==none or p.next==none:#

如果當前節點是空或者下乙個節點也就是要刪除節點是空。

print("

位置有誤")

else

:

print("

刪除的內容是

",p.next.num)

p.next=p.next.next

def reverse(self):#

鍊錶翻轉

if self.head==none or self.head.next==none:

print("

不用到了")

else

: current=self.head #

前驅節點

pre = none#

當前節點

nextnode = self.head.next#

下乙個節點

while nextnode !=none :#

當前節點為尾節點的時候迴圈退出,此時nextnode為空

current.next=pre#

當前節點連線到前節點

pre = current#

前乙個節點後移

current =nextnode#

當前節點後移

nextnode = nextnode.next#

下乙個節點後移

current.next = pre#

最後乙個節點翻轉

self.head=current

lb=linklist()

lb.produce()

while

true:

bh=int(input("

請輸入編號:"))

if bh==1: #

鍊錶插入

lb.charu()

elif bh==2:#

鍊錶刪除

lb.shanchu()

elif bh==3:#

鍊錶列印

lb.dayin()

elif bh==4:

lb.reverse()

else

:

break

Python 基本資料結構

列表是python裡的內建的型別之一,可以新增和刪除其中的元素。如 role sam 33 dean 37 可以列表中包含列表,同一列表中包含不同型別的資料。下面介紹列表的一些通用操作,關於list的其他用法,可以通過help list 檢視。a 2,13,12,41,17,23 a 1 列表從0開...

python 基本資料結構

1.切片 sname start?step sname 為序列名稱 start 不指定 預設為0 包含 end 不包含 step 不指定 預設為1 2.序列可以通過 相加 song1 a,b song2 c,d print song1 song2 3.序列相乘 song1 a print song1...

python中基本資料結構(四)

二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹的建立 建立二叉樹節點 class treenode object 初始化節點 def init self,data,left node none,right no...