单链表:python实现及其对应的 增删查检 操作

#####################  P4.1-P4.8 单向链表  ###########################
#coding:utf-8
class Node(object):def __init__(self,elem):self.elem = elemself.next = Noneclass SinglelinkList(object):"""SinglelinkList"""def __init__(self,node = None):#默认参数self.__head = nodedef is_empty(self):return self.__head == Nonedef travel(self):"""遍历链表"""cur = self.__headwhile cur != None:print(cur.elem,end=" ")cur= cur.nextprint("")def length(self):"""length of list 遍历 借助 Cursor 指针或者游标计数"""cur = self.__head#cur游标 遍历节点 不断移动count = 0while cur != None:# cur.next = Nonecount+=1cur = cur.nextreturn countdef __add__(self, item):"""nedd to add node"""node = Node(item)node.next = self.__headself.__head = nodedef append(self,item):node = Node(item)        #node 实例化if self.is_empty():self._head = nodeelse:cur = self.__headwhile cur.next != None:cur = cur.nextcur.next = nodedef insert(self,pos,item):""":param pos  从0 开始 """pre = self.__headcount = 0if pos<0:self.__add__(item)elif pos>(self.length()-1):self.append(item)else:while (count<(pos-1)):count+=1pre = pre.nextnode =Node(item)node.next = pre.nextpre.next = nodedef remove(self,item):cur = self.__headpre = Nonewhile cur!= None:if cur.elem == item:if pre ==None:self.__head=cur.nextelse:pre.next = cur.nextbreakelse:pre = curcur = cur.nextdef search(self,item):cur = self.__headwhile cur!= None:if cur.elem == item:return  Trueelse:cur = cur.nextreturn False# single_obe = SinglelinkList()
if __name__ =="__main__":ll = SinglelinkList()print(ll.is_empty())print(ll.length())ll.append(1)print(ll.is_empty())print(ll.length())ll.append(2)ll.__add__(8)ll.append(1)ll.append(3)ll.append(1)ll.append(3)ll.insert(-1,9)ll.insert(4, 119)ll.insert(8, 1234)ll.travel()
### 9 8 1 3 119 1 3 1234ll.remove(1234)ll.travel()

python数据结构与算法:单向链表相关推荐

  1. Python数据结构与算法(五)--链表

    链表 链表的定义: 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址). 单项链 ...

  2. 数据结构与算法-单向链表的修改和删除操作

    单向链表的修改和删除操作 单向链表的修改 单向链表的删除 单向链表的修改 在上面的代码基础上定义几个英雄 HeroNode hero1 = new HeroNode(1,"宋江", ...

  3. python定义链表节点_Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】...

    本文实例讲述了Python数据结构与算法之链表定义与用法.分享给大家供大家参考,具体如下: 本文将为大家讲解: (1)从链表节点的定义开始,以类的方式,面向对象的思想进行链表的设计 (2)链表类插入和 ...

  4. Python数据结构与算法_9_有序链表

    前情提要:Python数据结构与算法_8_链表.无序链表 接下来我们研究有序链表. 什么是有序链表 如果给定一个链表,他的节点数据元素都是的整数,如77, 26, 31, 93, 17, 54.如果这 ...

  5. Python数据结构与算法(附录)——块状链表的动态调整

    Python数据结构与算法(附录)--块状链表的动态调整 块状链表的动态调整 违反规则 1 违反规则 2 相关链接 块状链表的动态调整 我们已经知道块状链表的块的最大容量会随着链表长度的变化动态改变, ...

  6. Python数据结构与算法(2.3)——链表

    Python数据结构与算法(2.3)--链表 0. 学习目标 1. 线性表的链式存储结构 1.1 指针相关概念 1.2 指针结构 1.2 结点 1.3 结点类 2. 单链表的实现 2.1 单链表的初始 ...

  7. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  8. Python数据结构与算法(2.6)——块状链表

    Python数据结构与算法(2.6)--块状链表 0. 学习目标 1. 块状链表简介 1.1 块状链表介绍 1.2 块状链表中结点类 1.3 块状链表中块类 2. 块状链表的实现 2.1 块状链表的初 ...

  9. Python数据结构与算法(2.7)——跳表

    Python数据结构与算法(2.7)--跳表 0. 学习目标 1. 跳表的基本概念 1.1 跳表介绍 1.2 跳表的性能 1.3 跳表与普通链表的异同 2. 跳表的实现 2.1 跳表结点类 2.2 跳 ...

  10. Python数据结构与算法(2.5)——循环链表

    Python数据结构与算法(2.4)--循环链表 0. 学习目标 1. 循环链表简介 2. 循环单链表实现 2.1 循环单链表的基本操作 2.2 简单的实现方法 2.3 循环单链表应用示例 2.4 利 ...

最新文章

  1. python/pandas数据分析(十五)-聚合与分组运算实例
  2. Mysql共享锁实例_mysql共享锁与排他锁用法实例分析
  3. python语言的理解-Python动态语言理解
  4. 算法竞赛入门经典(第二版) | 例题4-4 信息解码 (紫皮书牛啤!)(UVa213,Message Decoding)
  5. Linux常用命令,超强万字总结!
  6. 【ES10(2019)】Array扩展 flat / flatMap
  7. java利用redis实现排行榜_Java简单使用redis-zset实现排行榜
  8. Perlin Noise
  9. 深信服桌面云的各种密码
  10. Tomcat(二)环境变量配置
  11. 编程语言中的句柄是什么?
  12. 微信小程序轮播图实现(超简单)
  13. 刨根系列 之 Unity3D UGUI 背后的工作原理
  14. 优知学院创始人陈睿:怎样做好一个创业公司CTO?
  15. 本地启动本地mysql_通过本地化启动并运行
  16. Linux 8723be无线网卡,解决rtl8723be无线网卡驱动频繁断网问题
  17. 《University Calculus》-chape12-偏导数-基本概念
  18. ps中怎么导出tif_用Photoshop自动切割大型TIFF文件并将切片保存到TIFF文件中?
  19. 产业创新新主流,讯众股份上榜创业黑马“新一亿中流”企业top100
  20. react手脚架安装

热门文章

  1. linux下date -d,linux date -d的一些用法
  2. vs如何设置对话框显示在最前面_【另存为】对话框的使用
  3. crtsiii型无砟轨道板_山洞岩隧道无砟轨道施工快速推进
  4. 主存储器是现代计算机系统的数据传送中心,第2章计算机体系结构习与题答案.doc...
  5. python神经网络原理pdf_《深度学习原理与 TensorFlow实践》高清完整PDF版 下载
  6. 怎么进u8系统服务器网址,服务器地址变更后如何进入u8
  7. java tablemodel_高级组件——表格模型TableModel
  8. C语言中的指针和内存泄漏
  9. Android Studio 的安装笔记
  10. Linux那些事儿之我是Sysfs(1)sysfs初探