python如何自定义单链表

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









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值