数据结构与算法分析
还是得学
暴躁青椒
这个作者很懒,什么都没留下…
展开
-
栈(出栈序列)
令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)h(0) (n>=2)从第一项开始,分别是第一个入栈元素在第i+1个出栈的情况数例如:h(2)=h(0)h(1)+h(1)h(0)=11+11=2h(3)=h(0)h(2)+h(1)h(1)+h(2)h(0)=12+11+21=5递推关系的解为:h(n)=C(2n,n)/(n+1) (n=0,1,2,…)递推关系的另类解为:h(n)=c(2n,原创 2021-05-09 15:45:18 · 162 阅读 · 0 评论 -
查找算法(哨兵查找)
/*哨兵查找*/#include <stdio.h>#define MAXSIZE 10typedef struct { int NO; char name[10]; int grade;}STU,STUlist[MAXSIZE+1];int homework(STUlist stulist,int key,int n){ int i=0; stulist[n].NO=key; while(stulist[i].NO!=key) { i++; } retur原创 2021-05-09 10:31:22 · 346 阅读 · 0 评论 -
弗洛伊德算法
#define MAXVEX 9#define INFINITY 65535typedef int Pathmatirx[MAXVEX][MAXVEX];typedef int ShortPathTable[MAXVEX][MAXVEX];void ShortestPath_Floyd(MGraph G, Pathmatirx *P, ShortPathTable *D){ int v, w, k; // 初始化D和P for( v=0; v < G.numVertexes..原创 2021-05-07 22:36:36 · 179 阅读 · 0 评论 -
最短路径-迪杰斯特拉算法
#define MAXVEX 9#define INFINITY 65535typedef struct{ char vexs[MAXVEX]; // 顶点表 int arc[MAXVEX][MAXVEX]; // 邻接矩阵 int numVertexes, numEdges; // 图中当前的顶点数和边数} MGraph;typedef int priornode[MAXVEX]; //存放该点的前驱节点 typedef int shortpathlength[MAXVE.原创 2021-05-07 11:08:30 · 198 阅读 · 0 评论 -
单链表-1
1.带头结点的单链表L中所有元素为整数,设计一个算法将所有小于零的节点移到所有大于等于零的节点的前面。typedef signed int ElemType;typedef struct LNode{ // 定义单链表结点 ElemType data; struct LNode *next; // 指向后继的指针域}LNode, *LinkList;void fun(LinkList &L){ LinkList posHead=(Li原创 2021-05-05 22:41:12 · 1592 阅读 · 0 评论 -
指向结构体的指针作为参数传递问题
形参为一个指向结构体指针的指针(二级指针)void CreateListTail(LinkList *L, int n){ LinkList p,r; int i; srand(time(0)); /* 初始化随机数种子 */ r=*L; /* r为指向尾部的结点 */ for (i=0; i < n; i++) { p = (Node *)malloc(sizeof(Nod原创 2020-12-10 12:27:53 · 866 阅读 · 0 评论 -
线性表【单链表快速查到中间节点】
#include <stdio.h> #include <stdlib.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */typedef int ElemType; /* ElemType类型根据实际情况而定,这里假设为int */typedef struct Node{ El原创 2020-12-10 11:01:11 · 167 阅读 · 0 评论 -
线性表【静态链表】
#define MAXSIZE 1000#define OK 1#define ERROR 0#include <stdio.h>typedef int Status; typedef ElemType; typedef struct{ElemType data; // 数据int cur; // 游标(Cursor)} Component, StaticLinkList[MAXSIZE];/*对静态链表进行初始化相当于初始化数组*/ Status In原创 2020-12-09 00:09:48 · 80 阅读 · 0 评论 -
线性表【单链表】
#include<stdio.h> typedef struct Node{ElemType data; // 数据域struct Node* Next; // 指针域} Node;typedef struct Node* LinkList;/* 初始条件:顺序线性表L已存在,1<=i<=ListLength(L) *//* 操作结果:用e返回L中第i个数据元素的值 */Status GetElem( LinkList L, int i, ElemTy原创 2020-12-07 23:46:11 · 83 阅读 · 0 评论 -
线性表【顺序结构】
线性表分为顺序存储结构和链式存储结构原创 2020-12-07 12:17:10 · 137 阅读 · 0 评论