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读写文件操作示例程序
Dec 02 Python
python使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
python实现的简单FTP上传下载文件实例
Jun 30 Python
Python全局变量用法实例分析
Jul 19 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
python打包多类型文件的操作方法
Sep 21 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 smarty模版引擎中的缓存应用
2009/12/02 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
php实现图片缩略图的方法
2016/03/29 PHP
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
深入理解Django中内置的用户认证
2017/10/06 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
德国自行车商店:Tretwerk
2019/06/21 全球购物
幼教个人求职信范文
2013/12/02 职场文书
十月份红领巾广播稿
2014/01/22 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
学习雷锋倡议书
2014/04/15 职场文书
营销与策划实训报告
2014/11/05 职场文书
企业安全生产规章制度
2015/08/06 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书