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字典序问题实例
Sep 26 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
python实现括号匹配的思路详解
Aug 23 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
python输出数学符号实例
May 11 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
python音频处理的示例详解
Dec 23 Python
浅谈Python numpy创建空数组的问题
May 25 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 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
在Windows版的PHP中使用ADO
2006/10/09 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
详解Python中的from..import绝对导入语句
2016/06/21 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
详解python3中zipfile模块用法
2018/06/18 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
python实现查找所有程序的安装信息
2020/02/18 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
公司离职证明范本(5篇)
2014/09/17 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
齐云山导游词
2015/02/06 职场文书
保安辞职信范文
2015/02/28 职场文书
简述Java中throw-throws异常抛出
2021/08/07 Java/Android