知识快速回顾(数据结构+算法)

打卡时间:2020-2-23 19:46 ~ 20:30

跳表

什么是跳表 ?

跳表是一种高效的链表结构,它通过增加多级索引的方式提高访问效率。

跳表的结构图是怎样的?

image.png

跳表的时间、空间复杂度是多少?

时间复杂度:O(logN)
空间复杂度:O(N)

跳表的问题

1.在插入/删除节点时,需要维护索引数据(定时更新),否则,会导致跳表的检索效率下降,严重时会退化成单链表结构。
2.跳表通过随机函数的维护数据的平衡,通过随机函数来决定数据插入到第几层索引中。

树的关键概念

1.高度:节点-->叶子的最长路径。 (从下往上)
2.深度:根节点-->子节点经过的边的数量。(从上往下)
3.层:深度+1
插图

image.png

二叉树、完全二叉树、满二叉树

1.二叉树:每个节点最多有两个分支的数。
2.满二叉树:所有的节点都有左右节点的数
3.完全二叉树
a.叶子节点都在最后两层
b.最后一层节点都在左边
c.除最后一层,其他节点都是满的

二叉树的存储结构

1.链表结构
value、left节点 、right节点
特点:
1.检索的性能比较低
2.耗内存

插图

image.png

2.数组结构
1.从数组下标1开始存储。
2.左节点:2i , 右节点: 2i+1
特点:
1.当二叉树为完成二叉树时,数组适用的内存是最少的。
2.检索的性能很快,根据2i或者2i+1就能检索到左右节点。
插图

image.png

二叉树的遍历

前序遍历
检索顺序:自己->左节点->右节点 (⬇️⬅️➡️)
递推公式
preOrder(r) = print r -> preOrder(left) -> preOrder(right)
插图

image.png

中序遍历
检索顺序:左节点->自己->右节点 (⬅️⬇️➡️)
递推公式
inOrder(r) = inOrder(left)-> print r -> inOrder(right)
插图

image.png

后序遍历
检索顺序:左节点->右节点->自身(⬅️➡️⬇️)
递推公式
postOrder(r) =postOrder(left) -> postOrder(right) -> print r
插图

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 树:是n(n>=0)个节点的有限集,n=0时称为空树。在任何一棵非空树中:1 有且仅有一个特定的称为根(root)...
    安静1337阅读 889评论 0 51
  • 树的定义与基本术语   树型结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,是以分支关系定义的层次结构。...
    java技术分享师阅读 1,208评论 0 1
  • 一、树: 二、二叉树: 1、概念:   每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。不过...
    墨殇染泪阅读 314评论 0 2
  • 二叉树 1.基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作为"左子树"和”右子树。 2.二叉树的...
    墨痕hz阅读 513评论 0 0
  • 高中后时间好像过的特别快 好像还没能在壹六年的结尾道别 那只能期待在壹柒年相遇 过去的一年 是很长的故事 在初中的...
    Laiino阅读 386评论 0 0

友情链接更多精彩内容