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

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

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

(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按二叉查找树排列

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值