我試圖在一個節點之前插入一個節點到雙向鏈接列表中。執行操作後,我沒有得到正確的結果。在雙向鏈接列表中的一個節點之前插入
class createnode:
def __init__(self,data):
self.data=data
self.next=None
self.prev=None
class Unordered_list:
def __init__(self):
self.head=None
######Insertion at the starting###
def buildlst(self,data):
node=createnode(data)
if self.head is None:
self.head=node
else:
node.next=self.head
node.prev=None
self.head=node
#######INsertion at the end####
def buildlstend(self,data):
node=createnode(data)
ptr=self.head
while(ptr.next):
ptr=ptr.next
ptr.next=node
ptr=node.prev
#######INsertion before some node i.e searched node####
def insertbeforenode(self,data,srch_data):
node=createnode(data)
ptr=self.head
while(ptr):
if ptr.data==srch_data:
node.prev=ptr.prev
node.next=ptr
ptr.prev=node
ptr=ptr.next
########Printitng the list########
def printlist(self):
temp=self.head
while(temp):
print(temp.data)
temp=temp.next
A=Unordered_list()
A.buildlst(10)
A.buildlst(20)
A.buildlstend(30)
A.printlist()
print("Here i will insert a new node 50 before 10")
A.insertbeforenode(50,10)
A.printlist()
MYLIST看一些什麼樣的20,10,30.I希望有新的節點它打印我已經通過這個鏈接Inserting a node before a given node in doubly linked list。我的計劃是在Python這樣couldn相同results.Have 10.but前.t從中收集很多。 insertbeforenode是我從哪裏撥打電話的功能。
爲什麼交叉發佈到Python和C標籤?這兩種語言的「正確方式」是非常不同的,因爲Python有內置的列表。 – torek