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聊天程序实例代码分享
Nov 18 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
python使用matplotlib画饼状图
Sep 25 Python
python 实现UTC时间加减的方法
Dec 31 Python
python+os根据文件名自动生成文本
Mar 21 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
PyTorch中permute的用法详解
Dec 30 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
python对接ihuyi实现短信验证码发送
May 10 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中ob函数缓冲机制深入理解
2015/08/03 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
javascript Base类 包含基本的方法
2009/07/22 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
Python continue语句用法实例
2014/03/11 Python
python定时执行指定函数的方法
2015/05/27 Python
python类的继承实例详解
2017/03/30 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
python 创建一维的0向量实例
2019/12/02 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
Python的collections模块真的很好用
2021/03/01 Python
写给女朋友的检讨书
2014/01/28 职场文书
英语教学随笔感言
2014/02/20 职场文书
老公保证书范文
2014/04/29 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers