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调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
Jan 14 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
Python中调用其他程序的方式详解
Aug 06 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
Opencv求取连通区域重心实例
Jun 04 Python
python中return不返回值的问题解析
Jul 22 Python
Python列表推导式实现代码实例
Sep 09 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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获取服务器时间的实现代码
2013/06/07 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
AngularJS的ng-click传参的方法
2017/06/19 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
Javascript类型判断相关例题及解析
2020/08/26 Javascript
Python set集合类型操作总结
2014/11/07 Python
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
HTML5进度条特效
2014/12/18 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
校领导推荐信
2013/11/01 职场文书
经销商培训邀请函
2014/01/21 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
植树节活动总结
2014/04/30 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript