我的第一本算法书学习-第一章数据结构

本文章仅用于学习使用,还希望想深入了解本书的同学去购买人民邮电出版社的《我的第一本算法书》,这本书真心写的非常好,对于入门有很好的帮助。

1-1 什么是数据结构

决定了数据的顺序和位置关系

数据存储于计算机的内存中。形似排成 1 列的箱子,1 个箱子里存储 1 个数据。数据存储于内存时,决定了数据顺序和位置关系的便是“数据结构”。
我的第一本算法书学习-第一章数据结构

选择合适的数据结构以提高内存的利用率

数据结构方面的思路也和制作电话簿时的一样。将数据存储于内存时,根据使用目的选择合适的数据结构,可以提高内存的利用率。

1-2 链表

链表是数据结构之一,其中的数据呈线性排列。在链表中,数据的添加和删除都较为方便,就是访问比较耗费时间
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构

1-3 数组

数组也是数据呈线性排列的一种数据结构。与前一节中的链表不同,在数组中,访问数据十分简单,而添加和删除数据比较耗工夫。
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构

1-4 栈

栈也是一种数据呈线性排列的数据结构,不过在这种结构中,我们只能访问
最新添加的数据。栈就像是一摞书,拿到新书时我们会把它放在书堆的最上
面,取书时也只能从最上面的新书开始取。
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构

1-5 队列

与前面提到的数据结构相同,队列中的数据也呈线性排列。虽然与栈有些相
似,但队列中添加和删除数据的操作分别是在两端进行的。就和“队列”这个名
字一样,把它想象成排成一队的人更容易理解。在队列中,处理总是从第一
名开始往后进行,而新来的人只能排在队尾。
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构

1-6 哈希表

在哈希表这种数据结构中,使用将在5-3 节讲解的“哈希函数”,可以使数据的
查询效率得到显著提升。
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构

1-7 堆

堆是一种图的树形结构,被用于实现“优先队列”(priority queues)(树形结构的详细讲解在4-2 节)。优先队列是一种数据结构,可以自由添加数据,但取出数据时要从最小值开始按顺序取出。在堆的树形结构中,各个顶点被称为“结点”(node),数据就存储在这些结点中。
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构

1-8 二叉查找树

二叉查找树(又叫作二叉搜索树或二叉排序树)是一种数据结构,采用了图的树形结构(关于树形结构的详细说明请参考4-2 节)。数据存储于二叉查找树的各个结点中。
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构
我的第一本算法书学习-第一章数据结构