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 相关文章推荐
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
python自动zip压缩目录的方法
Jun 28 Python
Python中装饰器高级用法详解
Dec 25 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
python处理两种分隔符的数据集方法
Dec 12 Python
Python for循环与range函数的使用详解
Mar 23 Python
python中count函数简单用法
Jan 05 Python
Python @property原理解析和用法实例
Feb 11 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
Python定时从Mysql提取数据存入Redis的实现
May 03 Python
python新手学习使用库
Jun 11 Python
Python 线程池模块之多线程操作代码
May 20 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
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
php教程之phpize使用方法
2014/02/12 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
js单例模式的两种方案
2013/10/22 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
详解Python多线程
2016/11/14 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
真诚的求职信
2014/07/04 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2014年派出所工作总结
2014/11/21 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
python四种出行路线规划的实现
2021/06/23 Python