数据结构笔记

1.哈希表

1.1哈希冲突:

哈希冲突(Hash Collision)是指两个或多个不同的输入值(键值)经过哈希函数处理后得到了相同的哈希值。在哈希表(Hash Table)中,这会导致存储或检索数据时出现问题,因为哈希表通常使用哈希值来直接定位数据存储的位置。理论上一定存在“多个输入对应相同输出” 。解决方法:哈希表的结构改良方法主要包括“链式地址”和“开放寻址”。

哈希表有三种常用的遍历方式:遍历键值对、遍历键和遍历值。

2.二叉树基本介绍

2.1二叉树的基本概念

 根节点(root node):位于二叉树顶层的节点,没有父节点。

叶节点(leaf node):没有子节点的节点,其两个指针均指向 None

完美二叉树

完全二叉数

完满二叉树

平衡二叉树

2.2遍历

层序遍历(level‑order traversal)从顶部到底部逐层遍历二叉树,并在每一层按照从左到右的 顺序访问节点。层序遍历本质上属于广度优先遍历(breadth‑first traversal),也称广度优先搜索(breadth‑first search, BFS), 它体现了一种“一圈一圈向外扩展”的逐层遍历方式。

前序、中序、后序遍历

前序遍历:从源头往下一点一点走。

中序遍历:从后端往前看,精髓体现在中这个字。

后序遍历:从后端往前看,精髓体现在后这个字。具体多体会几遍。

优点与缺点

二叉搜索树7.4   二叉搜索树 - Hello 算法 (hello-algo.com)

AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此是一种平衡二叉搜索树(balanced binary search tree)

3.堆

简称 大顶堆

堆常用数组实现。

4.图

                          

两种图有向图无向图

                  

4.1图的表示

1.邻接矩阵

2.邻接表

邻接表与哈希表中的“链式地址”相似,也可以采用类似的方法来优化效率。 比如当链表较长时,可以将链表转化为 AVL 树,从而将时间效率从 𝑂(𝑛) 优化至 𝑂(log 𝑛) ;可以链表转换为哈希表,从而将时间复杂度降至 𝑂(1) 。

4.2图的遍历

广度优先遍历(BFS)

深度优先遍历:深度优先遍历是一种优先走到底、无路可走再回头的遍历方式。如图 9-11 所示,从左上角顶点出发,访问当前顶点的某个邻接顶点,直到走到尽头时返回,再继续走到尽头并返回,以此类推,直至所有顶点遍历完成。

5.搜索策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值