概述
为了使计算机组成原理的相关知识,连贯起来,更方便查找理解,制作数据结构的目录。
目录
基本知识归纳
基本知识归纳与导航——–
10分钟了解数据结构讲的什么
基础概念
ADT——-
ADT抽象数据类型
(抽象数据类型的理解,由来)
时间复杂度——–
时间复杂度的计算
(每个算法的衡量标准)
基本数据结构
链表——
链表
(链表的插入,删除,修改等)
图
图的基本概念——–
图的基本概念
(了解图之前,需要了解图的基本概念)
KMP算法——–
KMP算法
(了解如何计算next,nextval,已经KMP算法的过程)
AOE网——–
关键路径的计算
(关键路径,最早发生时间,最晚发生时间怎么计算的)
最小生成树的几种求法
图的遍历——–
深度优先遍历,广度优先遍历
(深度优先遍历,广度优先遍历的过程是怎么样的)
Kruskal算法——–
Kruskal
(Kruskal算法,是全局性每次选择权值最小的边)
Prim算法——–
Prim
(Prim每次选择,当前已经插入结点能连接到的,权值最小的边)
求最小生成树的几种算法,代码的总结——–
深度,广度,Prim,Kruskal算法(C语言实现)
最短路径的几种求法
迪杰斯特拉算法——–
Dijkstra
(朴素的算法,每次全局性选择最短的边)
弗洛伊德算法——–
Floyd
(区别于迪杰斯特拉算法,不断对表更新,而不是数组)
树
线索二叉树——-
线索二叉树
(线索二叉树是什么,先序,中序,后序,)
B树B+树——–
B树和B+树的性质
(B树是什么,B+树又是什么)
哈夫曼树与哈夫曼编码——–
哈夫曼树与哈夫曼编码
(被称为最优二叉树的哈夫曼树)
红黑树——–
红黑树
(类似于二叉搜索树,理解其过程和特点,理解过程和特点)
AVL数——–
平衡二叉树
算法
排序算法
快速排序——-
快速排序
(作为金典必备的排序算法,必须要会写代码)
堆排序——–
堆排序
(大顶堆,小顶堆,打擂台)
基数排序——–
基数排序
(个位,十位,百位。。。依次排序)
归并排序——–
归并排序
(2路归并,3路归并,依次选出强者,也像是打擂台)
总结:
至此数据结构的基本知识,归纳概括已经完成,像栈,链表等基本概念,在
10分钟了解数据结构讲的什么
中也有提及,但此类问题,更多的是需要去理解,做题。
欢迎大家对博客提出改进的建议,和纠错。
附录
附1
——–
摩尔质量的计算
(看起来简单的经典算法题,只是看起来)
附2
——–排序算法总结(理解了,还是得背。)
冒泡排序:比较两个相临元素大小,每次将数据元素中最大元素交换到最后。
直接选择排序:每一趟选出最大或最小的元素,放到最前或最后,下一次再从n-1个数当中选。
插入排序:每次将一个元素,按关键字的大小,插入到前面已经排序的序列当中。
希尔排序:缩小增量排序,分组地直接插入排序。主要取决于增量。
归并排序:以n路归并,每次在n个当中选出最大或者最小的排序。再将子有序的队列,合并。
快速排序:选一个数为基准数,将小的放在前面,大的放在后面,确定基准数的最终位置,并且在基准数的左右两端再次确定基准数,直到子序的长度为1。
堆排序:大顶堆,小顶堆,找出最大的值或最小的值。
二分法排序:这类排序算法的时间复杂度,通常都是为logn。