python如何自定义单链表
单链表在c语言里面有指针很好实现但是如果在python就需要另外想方法了
如果认真去看就知道单链表里面的指针技术指向下一个节点的地址
所以要用到一个类来定义节点还要一个类来形成单链表
代码
def __init__(self,data,next=None):
self.data=data
self.next=next
def Recover(self):
return str(self.data)
class Link(object):
def __init__(self,data=None):
self._head=data
def Add(self,item):
node=Node(item)
node.next=self._head
self._head=node
def Travel(self):
node =self._head
while node:
print( node.data)
node=node.next
def Append (self,item):
if(self._head==None):#为空就直接添加
node = Node(item)
self._head=node
return
FontNode = None#最后节点的标准
node=self._head
while node: # 找到最后一个节点
FontNode = node
node=node.next
node=Node(item)
FontNode.next=node
def Search(self,item):#需要传入查找的值寻找节点的返回值第一个参数为是否找到第二个为找到的数据
node = self._head
data=None
found=False
while node:
if node.data==item:
data=node.data
found=True
break
else:
node=node.next
return [found,data]
def Insert(self,found,item):#传入查找值和插入元素最后一个和第一个直接添加,如果是中间的记录后一个节点然后添加在本节点之后在吧新节点重新指向后面的节点
node = self._head
count=0
while node:
if node.data==found:
Newnode = Node(item)
if count==0:
Newnode.next = self._head
self._head = Newnode
break
if node.next==None:
node.next=Newnode
break
blacknode = node.next
node.next=Newnode
Newnode .next=blacknode
break
return '添加成功'
count +=1
node=node.next