Galaxy Expedition - 我的博客

编写自己的篇章

最小生成树算法
两个最小生成树算法前者适合稠密,后者适合稀疏,都是基于邻接矩阵的算法Prim算法#define INF 32767 void Prim(MGraph g,int v) { int lowcost[MAXV]; int min
循环队列的算法
循环队列模型是:front没有元素,rear有元素。P153循环队列的存储结构#define MaxSize 100 typedef int ElemType; struct SqQueue { ElemType data[MaxS
选择排序
堆排序的数组元素序号是从1开始的,因为堆实际上是一棵顺序存储(数组存储)的二叉排序树简单选择排序void SelectSort(SqList R[],int n) { int i,j,k; SqList tmp; f
图的基本算法
MGraph是Matrix Graph邻接矩阵; AGraph是Adjacent Graph邻接表两种存储结构都是由邻接矩阵初始化的边表的初始化是用头插法,理解头插法的最佳想象是在有很多结点的情况下继续插,用从零开始的想法去做有点困 难
顺序栈的算法
顺序栈的存储结构#define MaxSize 100 typedef int ElemType; struct SqStack { ElemType data[MaxSize]; int top; };初始化栈的算法voi
顺序表的算法
typedef int ElemType 表示为int起别叫ElemType.typedef int Elemtype[10]相当于:以后用Elemtype声明的变量都是一个int[10]数组.除了return,还可以通过引用形参来返回函数
树表的查找
BST:Binary Sort Tree,二叉排序树p=malloc(...)强制类型转换→p=(BSTNode *)malloc(...)二叉排序树的存储结构typedef int KeyType; typedef int InfoTyp
模式匹配算法
前缀常识:Sq→Sequence,指顺序结构, Li→Link,指链接结构malloc的用法:struct SqString p=(SqString )malloc(sizeof(SqString));顺序串的存储结构#define Max
链栈的算法
p=lst->next这句话的含义是p为指向头结点之后第一个节点的指针。==NULL译为:没有第一个节点。链栈的存储结构typedef int ElemType; struct LiStack { ElemType data;
链队的算法
链队是一个没有头结点的单链表, 它的front和rear都有具体元素。队空不是front==rear, 而是 rear==NULL,front==rear可能是只有一个元素。存储结构就是在单链表的基础上加上一个结构体 LiQueue,内
交换排序
注意:快速排序的第二次扫描R[i].key <= tmp.key,而不是R[i].key < tmp.key,不然可能陷入i!=j永远不成立的循环冒泡排序void BubbleSort(SqList R[],int n) {
归并排序
Merge 将两个序列归并, MergePass 定义了在每一个长度下对序列怎样分区归并, MergeSort 以递增长度调用 MergePass归并排序算法void Merge(SqList R[],int low,int mid,int
单链表的算法
单链表的存储结构typedef int ElemType; struct LinkList { ElemType data; struct LinkList *next; };采用头插法建立单链表void CreateLis
插入排序
顺序表的存储结构#define MAXITEM 100 typedef int KeyType; typedef char ElemType[10]; struct SqList { KeyType key; ElemTyp