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之list和str比较
Sep 20 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
python字符串常用方法及文件简单读写的操作方法
Mar 04 Python
python中sympy库求常微分方程的用法
Apr 28 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
Python通过字典映射函数实现switch
Nov 06 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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绘图技术
2013/07/03 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
javascript事件问题
2009/09/05 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
aspx中利用js实现确认删除代码
2010/07/22 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
原生JS实现天气预报
2020/06/16 Javascript
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
2014年学生管理工作总结
2014/12/20 职场文书
党员自我评价2015
2015/03/03 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
大国崛起观后感
2015/06/02 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL