概述
为了使计算机组成原理的相关知识,连贯起来,更方便查找理解,制作数据结构的目录。
目录
基本知识归纳
基本知识归纳与导航--------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。