python 链表操作 优化_python操作链表的示例代码

class Node:

def __init__(self,dataval=None):

self.dataval=dataval

self.nextval=None

class SLinkList:

def __init__(self):

self.headval=None

# 遍历列表

def traversal_slist(self):

head_node=self.headval

while head_node is not None:

print(head_node.dataval)

head_node=head_node.nextval

# 表头插入结点

def head_insert(self,newdata):

Newdata=Node(newdata)

Newdata.nextval=self.headval

self.headval=Newdata

# 表尾插入结点

def tail_insert(self,newdata):

Newdata=Node(newdata)

if self.headval is None:

self.headval=Newdata

return

head_node = self.headval

while head_node.nextval :

head_node=head_node.nextval

head_node.nextval=Newdata

# 在两个数据结点之间插入

def middle_insert(self,middle_node,newdata):

Newdata=Node(newdata)

if middle_node is None:

return

Newdata.nextval=middle_node.nextval

middle_node.nextval=Newdata

# 删除结点

def remove_node(self,newdata):

head_node=self.headval

if head_node==None:

return

if head_node.dataval == newdata:

self.headval = head_node.nextval

head_node = None

return

while head_node is not None:

prev=head_node

head_node=head_node.nextval

if head_node:

if head_node.dataval==newdata:

prev.nextval=head_node.nextval

lis=SLinkList()

lis.headval=Node('aa')

ee=Node('bb')

lis.headval.nextval=ee

lis.head_insert('cc')

lis.tail_insert('dd')

lis.middle_insert(ee,"Fri")

lis.remove_node('bb')

lis.traversal_slist()

以上就是python操作链表的示例代码的详细内容,更多关于Python链表的资料请关注我们其它相关文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值