python insertLink 链表前中后插入

这篇博客介绍了链表数据结构的操作,包括创建链表、遍历链表、在链表头部插入元素、在链表尾部插入元素以及在链表中间插入元素的方法。示例代码展示了如何实现这些功能,并通过实例演示了操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Node:#创建链表
    def __init__(self, dataval=None):
        self.dataval = dataval
        self.nextval = None

class SLinkedList:
    def __init__(self):#创建链表
        self.headval = None

    def listVal(self):#遍历链表列表
        val = self.headval
        while val is not None:
            print(val.dataval)
            val = val.nextval

    def FromHead(self, insertdata):#插入链接列表中,插入头部位置
        NewNode = Node(insertdata)  #‘创建一个节点’
        NewNode.nextval = self.headval  #‘这个创建节点的下一个节点是原来头节点’
        self.headval = NewNode  #‘把这个新节点赋为现在头节点’

    def FromEnd(self, insertdata):#插入链接列表中,插入尾部位置
        NewNode = Node(insertdata)  #‘创建一个节点’
        if self.headval is None:  #‘判断如果原来头节点为空,直接赋新节点为头节点’
            self.headval = NewNode
            return

        end = self.headval  #‘把头节点赋为end节点’
        while end.nextval:  #'从前往后找最后一个点击'
            end = end.nextval
        end.nextval=NewNode  #‘把新节点赋为最后一个节点’

    def Inbetween(self,Middlenode,insertdata):#插入链接列表中,中间位置
        NewNode = Node(insertdata)
        if Middlenode is None:
            return

        NewNode.nextval = Middlenode.nextval  #'中间节点的下一个节点是插入节点'
        Middlenode.nextval = NewNode #‘查插入节点赋给中间节点的下一个节点’


list = SLinkedList()
list.headval = Node("Mon")
e2 = Node("Tue")
e3 = Node("Wed")
list.headval.nextval = e2
e2.nextval = e3
list.listVal()

print("................")

list.FromHead("Sun")
list.listVal()
print("................")

list.FromEnd("Fri")
list.listVal()
print("................")


list.Inbetween(list.headval.nextval.nextval.nextval,"Thur")
list.listVal()

运行输出:

Mon
Tue
Wed
................
Sun
Mon
Tue
Wed
................
Sun
Mon
Tue
Wed
Fri
................
Sun
Mon
Tue
Wed
Thur
Fri
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值