Python.实现链表部分功能

利用python创造链表,实现部分链表功能


链表主要由链表体和节点构成,链表体提供框架,节点承载数据及提供链接功能。

 

代码示例:

class Node:
    def __init__(self,dataval=None):
        self.dataval=dataval
        self.nextval=None
    def nodeprint(self):
        return str(self.dataval)

class Linked_lists:
    def __init__(self):
        self.headval=None
    def listprint(self):
        printval=self.headval
        while printval is not None:
            print(printval.dataval)
            printval=printval.nextval

    def atBegin(self,newdata):
        NewNode=Node(newdata)
        NewNode.nextval=self.headval
        self.headval=NewNode

    def atEnd(self,newdata):
        printval=self.headval
        NewNode=Node(newdata)
        if printval is None:
            self.headval=NewNode
            return
        LastNode=self.headval
        while LastNode.nextval:
            LastNode=LastNode.nextval
        LastNode.nextval=NewNode

    def Insert(self,newData,position):
        if position is None:
            return
        newNode=Node(newData)
        newNode.nextval=position.nextval
        position.nextval=newNode

    def RemoveNode(self, Removekey):

        HeadVal = self.headval

        if (HeadVal is not None):
            if (HeadVal.dataval == Removekey):
                self.headval = HeadVal.nextval
                HeadVal = None
                return

        while (HeadVal is not None):
            if HeadVal.dataval == Removekey:
                break
            prev = HeadVal
            HeadVal = HeadVal.nextval

        if (HeadVal == None):   #未找到目标值返回None
            return

        prev.nextval = HeadVal.nextval  #跳过删除节点链接下一点

        HeadVal = None           #清除删除点信息




node1=Node(1)
node2=Node(2)
node3=Node(3)
list1=Linked_lists()
list1.headval=node1
node1.nextval=node2
node2.nextval=node3

list1.atEnd(8)
list1.atBegin(0)
list1.RemoveNode(2)
list1.listprint()

参考自:https://www.tutorialspoint.com/python/python_linked_lists.htm

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值