單鏈表的基本操作
首先建立乙個結點類的結構,以便後面的操作
class node(object):
def __init__(self,data):
self.data=data
self.next=none
建立乙個鍊錶類
class linklist(object):
def __init__(self):
self.head=node(none)
#判斷是否為空
def isempty(self):
p=self.head#頭指標
if p.next==none:
print("link is empty")
return true
return false
#列印鍊錶
def printlink(self):
if self.isempty():
return false
p=self.head
while p:
print(p.data,end='')
p=p.next
建立單鏈表是乙個動態生成鍊錶的過程,就是從乙個空的單鏈表開始,依次建立各個元素的結點,並把它們依次插入鍊錶
def initlist(self,data):
self.head=node(data[0])#頭結點
p=self.head#頭指標
for i in data[1:]:
node=node(i)
p.next=node
p=p.next
計算單鏈表的長度
在使用鍊錶時,經常需要求表的長度,為此建立乙個求表長的函式,從左到右,遍歷表中所有的元素,並完成計數
def lengthlist(self):
if self.isempty():
return 0
p=self.head
cut=0
while p:
cut+=1
p=p.next
return cut
單鏈表的插入
假設我們要把結點q插入到結點p的後面,只要把結點q插入到結點p和結點p.next 之間就行。
只要讓q.next和p.next 指標改變,讓p的後繼結點改為q的後繼結點,再把q的後繼結點變成p的後繼結點,插入操作的順序不能打亂
def insertlist(self,s,data):
if self.isempty() or s<0 or s>self.lengthlist():
print("insert failed")
return
p=self.head
index=1
while index表單的刪除
如果想要刪除結點q,其實就是把它的前繼結點p指標繞過q,直接指向q的後繼結點 如圖
讓p.next 直接為p 的next 的 next , p 的next 為q ,所有就是p.next=q.next
def delelist(self,s):
if self.isempty() or s<0 or s>self.lengthlist():
print("dele failed")
return
index =1
p=self.head
while index整體**如下
#-*- coding:utf-8 -*-
#__auther__:wm
class node(object):
#定義乙個結點類
def __init__(self,data):
self.data=data
self.next=none
#建立乙個鍊錶類
class linklist(object):
def __init__(self):
self.head=node(none)
#判斷是否為空
def isempty(self):
p=self.head#頭指標
if p.next==none:
print("link is empty")
return true
return false
#列印鍊錶
def printlink(self):
if self.isempty():
return false
p=self.head
while p:
print(p.data,end='')
p=p.next
#建立單鏈表
def initlist(self,data):
self.head=node(data[0])#頭結點
p=self.head#頭指標
for i in data[1:]:
node=node(i)
p.next=node
p=p.next
#單鏈表的長度
def lengthlist(self):
if self.isempty():
return 0
p=self.head
cut=0
while p:
cut+=1
p=p.next
return cut
#單鏈表的插入
def insertlist(self,s,data):
if self.isempty() or s<0 or s>self.lengthlist():
print("insert failed")
return
p=self.head
index=1
while indexself.lengthlist():
print("dele failed")
return
index =1
p=self.head
while indexself.lengthlist():
print("error!")
return
index=1
p=self.head
while index
index+=1
p=p.next
print("第{}個值是{}".format(s,p.data))
python中的單鏈表操作
這只是一些簡單的操作,等有時間會更新一些高階操作 coding utf 8 class node def init self,data 0,next none self.data data 資料 self.next none class llink def init self self.head n...
單鏈表的操作
單鏈表是一種非常重要的資料結構,下面用c語言對單鏈表的操作做乙個簡單的總結 typedef struct nodenode,linklist 1 單鏈表的建立 建立乙個單鏈表,鍊錶裡面存放有十個偶數 2到20 有頭節點,頭節點不存放元素。linklist createlinklist return ...
單鏈表的操作
1.定義單鏈表的介面函式 ifndef linklist h define linklist h typedef int elemtype typedef struct node node node initnode bool addnode node head,elemtype data 頭插法 ...