python操作链表的示例代码


Posted in Python onSeptember 27, 2020
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链表的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python threading多线程编程实例
Sep 18 Python
在Python程序中操作文件之flush()方法的使用教程
May 24 Python
简述Python2与Python3的不同点
Jan 21 Python
详解Python中的四种队列
May 21 Python
Python封装成可带参数的EXE安装包实例
Aug 24 Python
python3实现微型的web服务器
Sep 03 Python
Django实现文件上传下载功能
Oct 06 Python
python基于opencv检测程序运行效率
Dec 28 Python
keras实现VGG16 CIFAR10数据集方式
Jul 07 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
Python修改DBF文件指定列
Dec 19 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 #Python
python实现暗通道去雾算法的示例
Sep 27 #Python
谈谈python垃圾回收机制
Sep 27 #Python
如何在python中处理配置文件代码实例
Sep 27 #Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 #Python
python 读取、写入txt文件的示例
Sep 27 #Python
python 动态绘制爱心的示例
Sep 27 #Python
You might like
用PHP 4.2书写安全的脚本
2006/10/09 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php内存缓存实现方法
2015/01/24 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中的代码编码格式转换问题
2015/06/10 Python
浅谈Python基础之I/O模型
2017/05/11 Python
python pyheatmap包绘制热力图
2018/11/09 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
python tkinter组件摆放方式详解
2019/09/16 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
Ajax的工作原理
2015/12/04 面试题
大学生入党思想汇报
2014/01/01 职场文书
《春雨》教学反思
2014/04/24 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
应急管理工作总结2015
2015/05/04 职场文书
工作年限证明模板
2015/06/15 职场文书
MySQL锁机制
2021/04/05 MySQL
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS