前言
刚开始接触软考视频,第一章的内容和《数据结构导论》书中讲解的基本上是一样的,因为已经把《数据结构导论》看过两遍,对于软考视频第一章看起来相对省力的多。
本章节内容在平时也已经很熟悉,常用的数据结构和算法总的来说内容不少,但根本内容不难理解,对其整体内容做个整理。
学习大纲
视频起始给了一张总结性的图片,概括了基本数据结构的整体学习内容:
具体内容
线性表
线性表按存储结构主要划分为两部分:顺序表和链表;
链表类别:单链表、循环链表、双链表;
对顺序表和链表分别在空间性能和时间性能作比较,相对来说,各种链表各有各的优点,各有各的好处,使用时根据需求合理选择即可。
树和二叉树
1.二叉树,又称二叉排序树;
2.基本操作:查找、插入、删除;
3.二叉树分类:最优二叉树——哈夫曼树、线索二叉树、平衡二叉树;
4.二叉树的特性:在二叉树的第i层上最多有2^(i-1)个节点(i>=1);
深度为k的二叉树最多有2^k-1个节点(k>=1);
对任何一棵二叉树,如果其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1。
图
1.图由两个集合V和E构成,V是有限的非空顶点集合,E是用顶点对表示的边集合。
2.基本概念:无向图和有向图,度(入度和出度),子图,完全图,路径,连通图和连通分量,邻接矩阵和邻接表。
3.图的遍历:分为深度优先和广度优先。深度优先是确定出发点V,找到与V相邻的未访问过的所有顶点,选定顶点W访问,继续寻找W相邻的未访问的顶点,依次向下访问;广度优先是确定出发点V,找到所有与V相邻的未访问过的顶点,依次访问,在把与V相邻的顶点全部访问过之后,再向下一层访问,直到所有顶点都被访问完毕。
图示说明:
4.最小生成树
普里姆算法:确定一个顶点,依次寻找最小边,直到将所有顶点都连接,寻找期间保证不重复连接顶点;
克鲁斯卡尔算法:取出所有顶点,在所有边中选择权值最小的,连接,并以此在未连接的顶点和已连接的顶点间依次寻找最小权值边,直至所有顶点被连接。
5.排序算法(重点)
本节所讲排序全部属于内部排序,可分为:插入排序(直接插入排序、希尔排序),选择排序(简单选择排序、堆排序),交换排序(冒泡排序、快速排序),归并排序,基数排序。
各类排序算法时间复杂度和空间复杂度对比表:
哈希表
又称散列表、杂凑表;是一种查找技术,具有极高的查找效率;
对于Hash函数的构造,没有特定的要求,所以方法很多,了解什么样的哈希函数才叫好的Hash函数,这样就便于我们根据实际情况来构造合理的Hash函数了。
通过视频对哈希表的学习效果并不是很好,还有待和小伙伴们一起研究!
查找算法
查找算法有三种方法: 顺序查找、二分查找和分块查找。
顺序查找:顾名思义就是从表的一端开始,按顺序比对当前结点与关键字是否相等的一个查找方式。
二分查找:折半查找法,这种方法的查找效率高,但要求序列必须是有序的。
分块查找:用图来说明
在索引表中分为两行,第一行为块的最大关键字,即所分出来的块中最大的值;第二行为块的起始地址,即每个块中第一个值得序列编号。
三种方法的比较:
小结
软考视频的第一章差不多就是这些内容,因为之前很熟悉,看的时候相对来说也就省劲多了。学习就是不断地重复,因为了解,才能更好的理解。
软考第一阶段的第二部分正式开始了,有个好的开头,用心做就好!