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之Python文档
Oct 10 Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
python实现将内容分行输出
Nov 05 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
Python3实现二叉树的最大深度
Sep 30 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 Python
Python数据分析入门之数据读取与存储
May 13 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方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
js封装成插件的步骤方法
2017/09/11 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
多版本Python共存的配置方法
2017/05/22 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
python回调函数中使用多线程的方法
2017/12/25 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
在职证明格式样本
2015/06/15 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python