- 博客(20)
- 收藏
- 关注
原创 《算法导论》P53
《算法导论》P53主定理:令 a>=1 且 b>1 是常数,f(n) 是一个函数,T(n) 是定义在非负整数上的递归式:T(n) = a*T(n/b) + f(n)其中我们将 n/b 解释为 floor(n/b) 或 ceiling(n/b)。那么 T(n) 有如下渐近界:若对某个常数 ε > 0 ,有 f(n) = O(nlogb(a-ε))(注:其中b是log...
2019-10-10 21:30:57
162
原创 顺序表的操作(旧版,大话数据结构版)
定义:#define MAXSIZE 20typedef int ElemType;typedef struct { ElemType data[MAXSIZE]; int length;}SqList;获得元素的操作#define OK 1#define Error 0#define True 1#define False 0typedef int Status;S...
2019-07-21 21:49:55
145
原创 查找(顺序、折半)
顺序查找:int Sequential_Search(int *a, int n, int key){ int i; for (i = 1; i <= n; i++) { if (a[i] == key) return i; } return 0;}带哨兵的顺序查找:int Sequential_Search2(int *a, int n, int key)...
2019-07-08 19:10:05
150
原创 最短路径问题(Dijkstra、Floyd)
Dijkstra算法:#define MAXVEX 9#define INFINITY 65535typedef int Patharc[MAXVEX]; // 用于存储最短路径下标的数组typedef int ShortPathTable[MAXVEX]; // 用于存储到各点最短路径的权值和/* Dijkstra算法,求有向图G的vo顶点到其余顶点v最短路径...
2019-07-08 08:56:56
196
原创 拓扑排序算法
结构定义:typedef struct EdgeNode{ int adjvex; int weight; struct EdgeNode *next;} EdgeNode;typedef struct VertexNode{ int in; int data; EdgeNode *firstedge;} VertexNode, AdjList[MAXVEX];ty...
2019-07-07 10:19:51
121
原创 最小生成树
Prim算法(邻接矩阵版):/* Prim算法生成最小生成树 */void MiniSpanTree_Prim(MGraph G){ int min,i,j,k; int adjvex[MAXVEX]; //保存相关结点下标 int lowcost[MAXVEX]; //保存相关顶点间边的权值 lowcost[0] = 0; ...
2019-07-05 18:27:19
100
原创 图的BFS
邻接矩阵的广度遍历算法: // 邻接矩阵的广度优先算法 void BFSTraverse(MGraph G) { int i,j; Queue Q; for (i = 0; i < G->numVertexes; i++) visited[i] = False; InitQue...
2019-07-04 16:05:12
390
原创 图的DFS
邻接矩阵的DFS:typedef int Boolean;Boolean visited[MAX];// 邻接矩阵的深度优先递归算法void DFS(MGraph G, int i){ int j; visited[i] = True; printf("%c ", G->vexs[i]); for (j = 0; j < G->numVe...
2019-07-04 15:40:34
331
原创 【2】链表的操作
定义:typedef struct Node{ ElemType data; struct Node *next;} Node;typedef Node *LinkList;读取(获取)第 i 个元素:/* 初始条件:链表L已存在 *//* 操作结果:用e返回L中的第 i 个数据元素的值 */Status GetElem(LinkList L, int i, ElemType...
2019-07-02 09:34:21
134
原创 【1】C语言程序设计:摘录
P303->运算符利用指针访问结构中的成员是很普遍的,因此C语言针对此目的提供了一种运算符。此运算被称为右箭头选择(right arrow selection),它由一个减号跟一个>组成。利用运算符->可以编写语句new_node->value = 10;来代替语句(*new_node).value = 10;运算符->是运算符*和运算符.的组合,它先...
2019-07-02 09:33:41
217
原创 图 Graph
图的邻接矩阵存储结构:typedef char VertexType;typedef int EdgeType;#define MaxVex 100#define Infinity 65535typedef struct{ VertexType vexes[MaxVex]; EdgeType arc[MaxVex][MaxVex]; int numVertexes, numEdg...
2019-06-29 14:40:35
303
原创 线索二叉树
二叉树的建立:/* 按前序输入二叉树中结点的值 *//* #表述空树,构造二叉链表表示二叉树T */void CreateBiTree( BiTree *T ){ TElemType ch; scanf("%c", &ch); if (ch == '#') *T=NULL; else { *T = (BiTree) malloc(sizeof(BiTNo...
2019-06-29 11:53:39
103
原创 树的三种表示法
结构定义:/* 树的双亲表示法结点结构定义 */#define MAX_TREE_SIZE 100typedef int TElemType;typedef struct PTNode /* 结点结构 */{ TElemType data; /* 结点数据 */ int parent; ...
2019-06-26 15:22:30
1212
原创 树的概括
树(Tree):有n (n>=0)个节点的有限集。当 n=0 时称为空树。在任一一棵非空树中:(1)有且仅有一个特定的、称为根(Root)的结点(2)当 n>1 时,根以外的结点可分为 m (m>0) 个互不相交的有限集 T1、T2、…、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)结点拥有的子树数:结点的度(Degree)度为 0 的结点:叶子...
2019-06-26 13:30:54
302
原创 链队列的操作
定义:typedef int QElemType;typedef struct QNode{ QElemType data; struct QNode *next;} QNode, *QueuePtr;typedef struct{ QueuePtr front, rear;} LinkQueue;链队列的入队:/* 插入元素 e 为新的队尾元素 */Status E...
2019-06-26 11:35:47
324
原创 顺序队列的操作
循环队列的顺序存储结构定义:typedef int QElemType;typedef struct{ QElemType data[MAXSIZE]; int front; int rear;} SqQueue;循环队列的初始化代码:/* 初始化一个空队列Q */Status InitQueue(SqQueue *S){ Q->front = 0; Q->...
2019-06-25 21:48:01
205
原创 链栈的操作
链栈的定义:typedef struct StackNode{ SElemType data; struct StackNode next;} StackNode, *LinkStackPtr;typedef struct LinkStack{ *LinkStackPtr top; int count;} LinkStack;链栈的进栈操作:/* 插入元素e为新的栈顶...
2019-06-25 13:55:12
164
原创 【3】顺序栈的操作(含双栈共享)
定义:typedef int SElemType;typedef struct{ SElemType data[MAXSIZE]; int top; /* 课程中top(栈顶)指向栈顶元素的下一个位置,即下次压栈时元素所放的位置 */ /* int stacksize; 栈当前可以使用的最大容量 */}SqStack;而此处的定义是:top指向栈...
2019-06-24 23:28:35
426
原创 【4】双向链表
定义typedef struct DulNode{ ElemType data; struct DulNode *prior; struct DulNode *next;} DulNode, *DuLinkList;在p指针所指节点之后,插入的关键步骤:s->prior = p;s->next = p->next;p->next->prior =...
2019-06-24 22:43:15
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人