#链表节点结构实现 私有属性_pro_item是指向下个节点的指针,_item为此节点的值

classNode():def __init__(self,item = None,pos_item=None):

self._item=item

self._next=pos_itemdef __repr__(self):'''用来定义Node的字符输出,

print为输出item'''

returnstr(self._item)#单链表实现

classChain():def __init__(self):

self._head=None

self.length=0#判空

defisEmpty(self):return self.length ==0#链表结尾插入

defappend(self,item):ifisinstance(item,Node):

node=itemelse:

node=Node(item)if self._head ==None:

self._head=nodeelse:

be_node=self._headwhilebe_node._next:

be_node=be_node._next

be_node._next=node

self.length+= 1

#插入数据

definsert(self,index,item):ifself.isEmpty():print('this chain table is empty')return

if index<0 or index >=self.length:print("error: out of index")returnin_node=Node(item)

node=self._head

count= 1

whileTrue:

node=node._next

count+= 1

if count ==index:

next_node=node._next

node._next=in_node

in_node._next=next_node

self.length+= 1

return

#node = s

#删除数据

defdelete(self,index):ifself.isEmpty():print('this chain table is empty')return

if index<0 or index >=self.length:print("error: out of index")return

#if index == 0

#self._head = None

else:

node=self._head

count=0whileTrue:

count+= 1

if index ==count:

node._next=node._next._nextbreaknode=node._next

self.length-= 1

def __repr__(self):ifself.isEmpty():print("the chain table is empty")returnnlist= ""node=self._headwhilenode:

nlist+= node._item +''node=node._nextreturnnlistif __name__ == '__main__':

chain=Chain()

chain.append('A')

chain.append('B')

chain.append('C')

chain.append('D')

chain.append('E')

chain.append('F')

chain.append('G')

chain.insert(4,'p')

chain.delete(3)print(chain,chain._head._item,chain.length)

python3 链表_python3实现链表相关推荐

  1. python3 链表_Python3链表实现

    一.链表的定义 链表:其中的各对象按线性顺序排列,其顺序有各个对象里的指针决定,为动态集合提供了一种简单而灵活的表示方法. 双向链表:每一个元素都是一个对象,每个对象有一个关键字key和两个指针:ne ...

  2. Python3 反转一个单链表

    Python3 反转一个单链表 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1-&g ...

  3. python3 全局变量_Python3基础 当函数中的局部变量与全局变量同名了,各管各的...

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...

  4. leetcode链表之反转链表

    本文主要有三道题,都是关于反转链表的算法题,由浅入深. 文章出现的代码都是python3 206.反转链表 题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例1: 输入:h ...

  5. Go 学习笔记(80)— Go 标准库 container/list(单链表、双链表)

    列表是一种非连续存储的容器,由多个节点组成,节点通过一些变量记录彼此之间的关系.列表有多种实现方法,如单链表.双链表等. ​ 在 Go 语言中,将列表使用 container/list 包来实现,内部 ...

  6. 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)

    目录 一.单链表 1.存储方式 2.插入 3.删除 总代码: 二.静态链表 1.存储方式 2.插入 3.删除 4.遍历 总代码: 三.循环链表 总代码: 四.双向循环链表 1.存储方式: 2.插入和删 ...

  7. python之链表、单链表、双向链表、单向循环链表

    python之链表.单链表.双向链表.单向循环链表 链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时,又需要进行数据的搬迁,所以使用起来并非很灵活 链表结构可以充分利用计算机 ...

  8. python去实现链表_python实现链表

    链表: 链表不需要在内存存储一个连续的地方,通常就像一个链一样 它的每个节点包含本身和下一个元素的地址,以此来把两个元素进行关联,这就是一个链表 链表分单项和双向,一般单项就够用了. 链表存在的用意义 ...

  9. 输入一个链表,反转链表后,输出新链表的表头(ACM格式)(美团面试题)

    输入一个链表,反转链表后,输出新链表的表头 其实这道题就是一个反转链表的题,但是因为自己不会建立链表,所以特地采用ACM的格式试着编写一下,这也美团给我出的一道实习算法题. public class ...

最新文章

  1. Linux环境thinkphp配置以及数据源驱动修改
  2. 并查集和prime和kruskal
  3. js中的new file_深受 Pandas 启发的 JavaScript 开源库 — Danfo.js 现已推出!
  4. [新闻]Ubuntu7.04于4月19日全球同步发布
  5. Java学习之斐波那契数列实现
  6. Ubuntu14升级MySQL
  7. Spring配置跨域请求
  8. littlevgl技术参考手册_树莓派littlevGL系列教程:littlevGL简单了解
  9. java 中== 和equal的区别
  10. 华为大数据与阿里大数据的区别
  11. 常州大学计算机专业研究生怎么样,常州大学计算机应用技术考研经验
  12. 如何上联想官网查询服务器配置信息,联想服务器型号联想服务器如何鉴别!
  13. 13th-极客大挑战
  14. vim .bashrc进入vim编辑界面之后如何退出
  15. linux反向查看文件内容tac,Linux查看文件内容的方法(cat,tac,more,less,head,tail)
  16. 微型计算机vag是指,《微型计算机复习题》.docx
  17. 学生学籍信息管理系统设计c语言,c语言学籍信息管理系统设计
  18. android 3d 游戏,盘点Android平台十款画面最强3D游戏
  19. 如何修改TIM聊天头像
  20. iOS CPU架构(ARM指令集)

热门文章

  1. Go版本升级后编译出错:Load redeclared in this block
  2. web笔记Error:That IP address
  3. Git学习笔记:Git简介
  4. Python学习笔记:面向对象高级编程(中上)
  5. [云炬创业学笔记]第二章决定成为创业者测试2
  6. 组会20211008《kEMPO1粒子模拟核心代码注释》
  7. 9 大主题!机器学习算法理论面试题大汇总
  8. c语言使用数组计算最大数。_程序设计入门——C语言_浙江大学_第10次开课
  9. Go进阶(3): 函数+闭包+defer
  10. 形变立体跟踪-基于稠密运动估计和力学仿真(2)