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 相关文章推荐
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
python更新列表的方法
Jul 28 Python
python实现扫描日志关键字的示例
Apr 28 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
Python进度条的制作代码实例
Aug 31 Python
python多维数组分位数的求取方式
Mar 03 Python
Python实现汇率转换操作
May 03 Python
python爬虫selenium模块详解
Mar 30 Python
python实现网络五子棋
Apr 11 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
BBS(php & mysql)完整版(八)
2006/10/09 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
js 上传图片预览问题
2010/12/06 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
python分布式编程实现过程解析
2019/11/08 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
Java中实现多态的机制
2015/08/09 面试题
2014新年元旦活动策划方案
2014/02/18 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
主题实践活动总结
2014/05/08 职场文书
社团活动总结书
2014/06/27 职场文书
办护照工作证明
2014/10/01 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS