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 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python减少循环层次和缩进的技巧分析
Mar 15 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
python图书管理系统
Apr 05 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
Mar 18 Python
Python控制Firefox方法总结
Jun 03 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
numpy求平均值的维度设定的例子
Aug 24 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 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如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
JS常用算法实现代码
2016/11/14 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
对angular4子路由&辅助路由详解
2018/10/09 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
python生成指定长度的随机数密码
2014/01/23 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
环境科学专业个人求职信
2013/12/15 职场文书
质检部职责
2013/12/28 职场文书
《藏戏》教学反思
2014/02/11 职场文书
保研推荐信
2014/05/09 职场文书
2015年工会工作总结
2015/03/30 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang