自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 118

原创 顺序表的操作(旧版,大话数据结构版)

定义:#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 115

原创 天勤摘录

p7一般来说,用结构体变量直接取分量,其操作用“.”;用指向结构体变量的指针来取分量,其操作用“->”。

2019-07-21 21:37:25 116

原创 查找(顺序、折半)

顺序查找: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 103

原创 最短路径问题(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 163

原创 拓扑排序算法

结构定义: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 98

原创 最小生成树

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 79

原创 图的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 333

原创 图的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 296

原创 【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 111

原创 【1】C语言程序设计:摘录

P303->运算符利用指针访问结构中的成员是很普遍的,因此C语言针对此目的提供了一种运算符。此运算被称为右箭头选择(right arrow selection),它由一个减号跟一个>组成。利用运算符->可以编写语句new_node->value = 10;来代替语句(*new_node).value = 10;运算符->是运算符*和运算符.的组合,它先...

2019-07-02 09:33:41 183

原创 图 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 274

原创 线索二叉树

二叉树的建立:/* 按前序输入二叉树中结点的值 *//* #表述空树,构造二叉链表表示二叉树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 77

原创 树的三种表示法

结构定义:/* 树的双亲表示法结点结构定义 */#define MAX_TREE_SIZE 100typedef int TElemType;typedef struct PTNode /* 结点结构 */{ TElemType data; /* 结点数据 */ int parent; ...

2019-06-26 15:22:30 1162

原创 树的概括

树(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 246

原创 链队列的操作

定义: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 258

原创 顺序队列的操作

循环队列的顺序存储结构定义: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 151

原创 链栈的操作

链栈的定义: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 135

原创 【3】顺序栈的操作(含双栈共享)

定义:typedef int SElemType;typedef struct{ SElemType data[MAXSIZE]; int top; /* 课程中top(栈顶)指向栈顶元素的下一个位置,即下次压栈时元素所放的位置 */ /* int stacksize; 栈当前可以使用的最大容量 */}SqStack;而此处的定义是:top指向栈...

2019-06-24 23:28:35 389

原创 【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 54

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除