标签:链表 删除 队列 学习 插入 数据结构 root 节点
顺序表:
增加元素:①表尾,②表中(不保序),③表中(保序)
删除元素:①表尾,②表中(不保序),③表中(保序)
顺序表扩充的两种策略:
①每次扩充增加固定数目的存储位置,扩充增加10个元素位置
节省空间,操作次数多
②每次扩充容量加倍,扩充增加一倍存储空间
减少了扩充次数,浪费空间资源。以空间换时间
链表:
单向链表:
length() 链表长度
travel() 遍历整个链表
add(item) 链表头部添加元素
append(item) 链表尾部添加元素
insert(pos, item) 指定位置添加元素
remove(item) 删除节点
search(item) 查找节点是否存在
插入:
头部插入
head -> new.p
new.next -> node
尾部加入:
node.next -> new
new.next -> null(空)
中间插入:
① 判断
② 前节点.next -> new
③ new.next -> 后节点
删除:
头删除:
head -> node2
中间删除:
① 判断
② node.next -> node2
双向链表:
由前驱节点和后继节点组成
头部加入add
尾部加入append
中间插入insert
删除remove
栈:
后进后出,压入式
加入数据(push)和输出数据(pop)
队列:
队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表
特殊:双端队列,是一种具有队列和栈的性质的数据结构
栈和队列的区别:
①栈后进先出,队列先进先出
②栈是删除/插入在同一段,队列是在两端进行的
③栈只允许尾部删除/插入,队列只允许表尾插入,表头删除
相同点:①线性表结构②插入在尾部③复杂度一样O(1)
串:
序列串
树:
二叉树,哈夫曼数,完整二叉树
遍历(先序,中序,后序)
先序:根,根左节点,根右节点
中序:根左节点,根,根右节点
后序:根左节点,根右节点,根
#先序
def xianxu(root):
if root is None :
return
print(root.date,end='')
xianxu(root.left-child)
xianxu(root.right-child)
#中序
def zhongxu(root):
if root is None :
return
zhongxu(root.left-child)
print(root.date,end='')
zhongxu(root.right-child)
#后序
def houxu(root):
if root is None :
return
houxu(root.left-child)
houxu(root.right-child)
print(root.date,end='')
图:
最广,最深
标签:链表,删除,队列,学习,插入,数据结构,root,节点 来源: https://blog.csdn.net/qq_44685426/article/details/123612718
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。