数据结构跟算法是一门很重要的课程,但是很多时候这门课总是给人一种晦涩难懂的感觉,最近读了《我的第一本算法书》,让我对数据结构与算法有了新的认识,这本书没有一开始就介绍专业术语,而是通过图表的方式来进行讲解的,个人很喜欢。

第一章介绍线性结构与非线性结构

(1)链表,适合用来插入、删除数据,查找访问时,使用的是顺序查找。

《我的第一本算法书》之认识数据结构

  • 在7、10中间插入9(如下图所示)

《我的第一本算法书》之认识数据结构

  • 删除10

《我的第一本算法书》之认识数据结构

循环链表,插入、删除操作一样

双向链表,插入、删除操作在前趋指针与后继指针处有所不同。

(2)数组,适合用来查找,查找时使用的是随机访问的方式。

数组的下标是从0开始

《我的第一本算法书》之认识数据结构

(3)栈和队列

《我的第一本算法书》之认识数据结构

(4)哈希表,用一定容量的数组,将需要存放的数存进去

通过哈希函数得一组数的哈希值为53,74,86存放在长度为5的数组中

53mod5=3,74mod5=4,86mod5=1

如果求得的余数相同,则称为冲突,此时有两种方式来解决,一种是在已有数据的后面添加链表,另一种是将冲突的数据存放在后一个数组中,如果下一个也存有数据,则继续看下一个数组,直到找到空的为止。

如添加44,44mod5=4

《我的第一本算法书》之认识数据结构

(5)堆,小根堆,子结点必定大于父节点

将数据2,3,4,7,9,14,17按小根堆排序

《我的第一本算法书》之认识数据结构

(6)二叉查找树

特征:①每个结点的值均大于其左子树上任意一个结点的值;②每个结点的值均小于其右子树上任意一个结点的值。

将15,7,1,22,24,27按二叉查找树排列

《我的第一本算法书》之认识数据结构

 

 

 

 

相关文章:

  • 2021-05-23
  • 2021-04-16
  • 2022-01-16
  • 2021-09-27
  • 2021-09-17
  • 2022-01-12
  • 2021-10-31
  • 2021-05-01
猜你喜欢
  • 2021-06-16
  • 2021-09-12
  • 2021-11-22
  • 2021-09-15
  • 2022-01-06
相关资源
相似解决方案