python3 链表_python3实现链表
#链表节点结构实现 私有属性_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实现链表相关推荐
- python3 链表_Python3链表实现
一.链表的定义 链表:其中的各对象按线性顺序排列,其顺序有各个对象里的指针决定,为动态集合提供了一种简单而灵活的表示方法. 双向链表:每一个元素都是一个对象,每个对象有一个关键字key和两个指针:ne ...
- Python3 反转一个单链表
Python3 反转一个单链表 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1-&g ...
- python3 全局变量_Python3基础 当函数中的局部变量与全局变量同名了,各管各的...
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...
- leetcode链表之反转链表
本文主要有三道题,都是关于反转链表的算法题,由浅入深. 文章出现的代码都是python3 206.反转链表 题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例1: 输入:h ...
- Go 学习笔记(80)— Go 标准库 container/list(单链表、双链表)
列表是一种非连续存储的容器,由多个节点组成,节点通过一些变量记录彼此之间的关系.列表有多种实现方法,如单链表.双链表等. 在 Go 语言中,将列表使用 container/list 包来实现,内部 ...
- 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)
目录 一.单链表 1.存储方式 2.插入 3.删除 总代码: 二.静态链表 1.存储方式 2.插入 3.删除 4.遍历 总代码: 三.循环链表 总代码: 四.双向循环链表 1.存储方式: 2.插入和删 ...
- python之链表、单链表、双向链表、单向循环链表
python之链表.单链表.双向链表.单向循环链表 链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时,又需要进行数据的搬迁,所以使用起来并非很灵活 链表结构可以充分利用计算机 ...
- python去实现链表_python实现链表
链表: 链表不需要在内存存储一个连续的地方,通常就像一个链一样 它的每个节点包含本身和下一个元素的地址,以此来把两个元素进行关联,这就是一个链表 链表分单项和双向,一般单项就够用了. 链表存在的用意义 ...
- 输入一个链表,反转链表后,输出新链表的表头(ACM格式)(美团面试题)
输入一个链表,反转链表后,输出新链表的表头 其实这道题就是一个反转链表的题,但是因为自己不会建立链表,所以特地采用ACM的格式试着编写一下,这也美团给我出的一道实习算法题. public class ...
最新文章
- Linux环境thinkphp配置以及数据源驱动修改
- 并查集和prime和kruskal
- js中的new file_深受 Pandas 启发的 JavaScript 开源库 — Danfo.js 现已推出!
- [新闻]Ubuntu7.04于4月19日全球同步发布
- Java学习之斐波那契数列实现
- Ubuntu14升级MySQL
- Spring配置跨域请求
- littlevgl技术参考手册_树莓派littlevGL系列教程:littlevGL简单了解
- java 中== 和equal的区别
- 华为大数据与阿里大数据的区别
- 常州大学计算机专业研究生怎么样,常州大学计算机应用技术考研经验
- 如何上联想官网查询服务器配置信息,联想服务器型号联想服务器如何鉴别!
- 13th-极客大挑战
- vim .bashrc进入vim编辑界面之后如何退出
- linux反向查看文件内容tac,Linux查看文件内容的方法(cat,tac,more,less,head,tail)
- 微型计算机vag是指,《微型计算机复习题》.docx
- 学生学籍信息管理系统设计c语言,c语言学籍信息管理系统设计
- android 3d 游戏,盘点Android平台十款画面最强3D游戏
- 如何修改TIM聊天头像
- iOS CPU架构(ARM指令集)
热门文章
- Go版本升级后编译出错:Load redeclared in this block
- web笔记Error:That IP address
- Git学习笔记:Git简介
- Python学习笔记:面向对象高级编程(中上)
- [云炬创业学笔记]第二章决定成为创业者测试2
- 组会20211008《kEMPO1粒子模拟核心代码注释》
- 9 大主题!机器学习算法理论面试题大汇总
- c语言使用数组计算最大数。_程序设计入门——C语言_浙江大学_第10次开课
- Go进阶(3): 函数+闭包+defer
- 形变立体跟踪-基于稠密运动估计和力学仿真(2)