python如何对链表操作


Posted in Python onOctober 10, 2020

链表

链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。
由于每个结点都包含了可以链接起来的地址信息,所以用一个变量就能够访问整个结点序列。
也就是说,结点包含两部分信息:一部分用于存储数据元素的值,称为信息域;另一部分用于存储下一个数据元素地址的指针,称为指针域。链表中的第一个结点的地址存储在一个单独的结点中,称为头结点或首结点。链表中的最后一个结点没有后继元素,其指针域为空。

代码

class Node():
  '创建节点'

  def __init__(self, data):
    self.data = data
    self.next = None


class LinkList():
  '创建列表'

  def __init__(self, node):
    '初始化列表'
    self.head = node    #链表的头部
    self.head.next = None
    self.tail = self.head #记录链表的尾部

  def add_node(self, node):
    '添加节点'
    self.tail.next = node
    self.tail = self.tail.next

  def view(self):
    '查看列表'
    node = self.head
    link_str = ''
    while node is not None:
      if node.next is not None:
        link_str += str(node.data) + '-->'
      else:
        link_str += str(node.data)
      node = node.next
    print('The Linklist is:' + link_str)

  def length(self):
    '列表长度'
    node = self.head
    count = 1
    while node.next is not None:
      count += 1
      node = node.next
    print('The length of linklist are %d' % count)
    return count

  def delete_node(self, index):
    '删除节点'
    if index + 1 > self.length():
      raise IndexError('index out of bounds')
    num = 0
    node = self.head
    while True:
      if num == index - 1:
        break
      node = node.next
      num += 1
    tmp_node = node.next
    node.next = node.next.next
    return tmp_node.data

  def find_node(self, index):
    '查看具体节点'
    if index + 1 > self.length():
      raise IndexError('index out of bounds')
    num = 0
    node = self.head
    while True:
      if num == index:
        break
      node = node.next
      num += 1
    return node.data


node1 = Node(3301)
node2 = Node(330104)
node3 = Node(330104005)
node4 = Node(330104005052)
node5 = Node(330104005052001)

linklist = LinkList(node1)
linklist.add_node(node2)
linklist.add_node(node3)
linklist.add_node(node4)
linklist.add_node(node5)


linklist.view()
linklist.length()

以上就是python如何对链表操作的详细内容,更多关于python 链表操作的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中os和shutil模块实用方法集锦
May 13 Python
Python functools模块学习总结
May 09 Python
Python递归遍历列表及输出的实现方法
May 19 Python
Python缩进和冒号详解
Jun 01 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
python代码过长的换行方法
Jul 19 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
python实现字典嵌套列表取值
Dec 16 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
python自动化之如何利用allure生成测试报告
May 02 Python
Python timeit模块原理及使用方法
Oct 10 #Python
python实现自动打卡的示例代码
Oct 10 #Python
Python类绑定方法及非绑定方法实例解析
Oct 09 #Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 #Python
Python判断变量是否是None写法代码实例
Oct 09 #Python
Python尾递归优化实现代码及原理详解
Oct 09 #Python
Python hashlib模块的使用示例
Oct 09 #Python
You might like
linux下实现定时执行php脚本
2015/02/13 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
JavaScript函数定义方法实例详解
2019/03/05 Javascript
详解vue 命名视图
2019/08/14 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
党员自我评价分享
2013/12/13 职场文书
大四毕业生自荐书
2014/07/05 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
财务总监岗位职责范本
2015/04/03 职场文书