Galaxy Expedition - 我的博客

编写自己的篇章

插入排序
### 顺序表的存储结构 ```C++ #define MAXITEM 100 typedef int KeyType; typedef char ElemType[10]; struct SqList { KeyType k
归并排序
> Merge 将两个序列归并, MergePass 定义了在每一个长度下对序列怎样分区归并, MergeSort 以递增长度调用 MergePass ### 归并排序算法 ```C++ void Merge(SqList R[
链队的算法
> 1. 链队是一个没有头结点的单链表, 它的front和rear都有具体元素。队空不是front==rear, 而是 > rear==NULL,front==rear可能是只有一个元素。 > 2. 存储结构就是在单链表的基础上加
链栈的算法
> p=lst->next这句话的含义是p为指向头结点之后第一个节点的指针。==NULL译为:没有第一个节点。 ### 链栈的存储结构 ```C++ typedef int ElemType; struct LiStack {
模式匹配算法
> 1. 前缀常识:Sq→Sequence,指顺序结构, Li→Link,指链接结构 > 2. malloc的用法:struct SqString *p=(SqString *)malloc(sizeof(SqString)); #
树表的查找
> 1. BST:Binary Sort Tree,二叉排序树 > 2. p=malloc(...)强制类型转换→p=(BSTNode *)malloc(...) ### 二叉排序树的存储结构 ```C++ typedef in
顺序表的算法
> - typedef int ElemType 表示为int起别叫ElemType. > - typedef int Elemtype[10]相当于:以后用Elemtype声明的变量都是一个int[10]数组. > - 除了retur
图的基本算法
> 1. MGraph是Matrix Graph邻接矩阵; AGraph是Adjacent Graph邻接表 > 2. 两种存储结构都是由邻接矩阵初始化的 > 3. 边表的初始化是用头插法,理解头插法的最佳想象是在有很多结点的情况下继续
选择排序
> 堆排序的数组元素序号是从1开始的,因为堆实际上是一棵顺序存储(数组存储)的二叉排序树 ### 简单选择排序 ```C++ void SelectSort(SqList R[],int n) { int i,j,k;
循环队列的算法
> 循环队列模型是:front没有元素,rear有元素。P153 ### 循环队列的存储结构 ```C++ #define MaxSize 100 typedef int ElemType; struct SqQueue {
最小生成树算法
> 两个最小生成树算法前者适合稠密,后者适合稀疏,都是基于邻接矩阵的算法 ### Prim算法 ```C++ #define INF 32767 void Prim(MGraph g,int v) { int lowcost