
数据结构
cooloyty
stay hungry stay foolish
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
邻接表表示的广度优先搜索
#include#include#define MAXLEN 100/*邻接点域*/typedef struct node{ int adjnum; char adjvex; struct node *next;}EdgeNode;/*顶点域*/typedef struct vnode{ char vertex; EdgeNode *firstedge;}Vnod原创 2012-11-30 16:53:44 · 789 阅读 · 0 评论 -
邻接表
#include#include#define MAXVEX 100//边表结点 typedef struct node{ int adjvex;//邻接点域 char adjweg;// struct node *next; }EdgeNode;//顶点表结点 typedef struct Vnode{ char vertex;//顶点域原创 2012-11-19 22:07:13 · 534 阅读 · 0 评论 -
邻接矩阵表示的深度优先搜索
#include#include#define MAXVEX 100//最大顶点数typedef struct { char vexs[MAXVEX];//顶点表 int edges[MAXVEX][MAXVEX];//邻接矩阵 int n, e;//顶点数和边 }MGraph;int visited[100];void DFSM(MGraph *G,原创 2012-11-19 22:09:24 · 817 阅读 · 0 评论 -
邻接表表示的深度优先搜索
#include#include#define MAXVEX 100//边表结点 typedef struct node{ int adjvex;//邻接点域 char adjweg;// struct node *next; }EdgeNode;//顶点表结点 typedef struct Vnode{ char vertex;//顶点域原创 2012-11-19 22:21:02 · 665 阅读 · 0 评论 -
二叉排序树
#include#include#include#include#include#define LISTSIZE 10//初始化申请内存大小#define ADDSIZE 1//每次增加的内存大小#define STACKSIZE 100typedef struct { int *data; int length;//所存元素占内存大小 in原创 2012-12-27 11:00:53 · 423 阅读 · 0 评论 -
二叉排序树-2
#include#include#include#include#include#define LISTSIZE 10//初始化申请内存大小#define ADDSIZE 1//每次增加的内存大小#define STACKSIZE 100typedef struct { int *data; int length;//所存元素占内存大小 in原创 2013-01-03 10:42:22 · 517 阅读 · 0 评论 -
多项式
#include#include//#define LISTSIZE 5typedef struct node{ float coe;//系数 int index;//指数 struct node *next;}Node;typedef struct { Node *head;}Polyn;/*********************原创 2013-01-03 10:43:20 · 557 阅读 · 0 评论 -
二叉树(先序创建,递归先序,中序,后序遍历)-----1
/* 递归前序建立二叉树 */#include #include /* 定义二叉树节点类型 */typedef struct node { char data; struct node *lchild; struct node *rchild;}BiTNode, *BiTree;/*先序创建*/BiTree CreatBitTree原创 2012-10-22 20:26:27 · 3477 阅读 · 5 评论 -
背包问题
#includeint weight[10];int value[10];int v[10][10];int max(int m, int n){ if (m >= n) return m; else return n;}int MFKnapsack(int i, int j){ // 输入:i表示现物品数量,j表示背包承重量 // 输出前i个物品的最优子集的价值原创 2013-11-15 14:32:35 · 849 阅读 · 0 评论 -
插入排序
#includevoid insertSort(int a[], int n){ int v, j; for(int i=1; i<n; i++){ v = a[i]; j = i-1; while((j>=0)&&(a[j]>v)){ a[j+1] = a[j]; j --; } a[j+1] = v; }}void main(){ i原创 2013-11-15 14:33:15 · 731 阅读 · 0 评论 -
图--邻接矩阵(数组表示法)
/*图的邻接矩阵,算法7.2借助邻接矩阵很容易判定任意两个顶点之间是否有边(弧)相连,并容易求得各个顶点的度*/#include#define MAXLEN 10typedef struct { char vexs[MAXLEN];//顶点向量,存储一串顶点标识 int edges[MAXLEN][MAXLEN];//表示两个顶点之间的关系 i原创 2012-11-13 22:08:42 · 1252 阅读 · 0 评论 -
哈夫曼编码
#include#include#include#define MAXLEN 100#define MAX 100;typedef struct node { int weight; int lchild; int rchild; int parent; char info;//每个节点的信息 }hfNode;/*typedef do原创 2012-10-27 15:21:10 · 823 阅读 · 0 评论 -
二叉树(先序创建,非递归先序,中序遍历)-----2
#include#include#define SIZE 100typedef struct node { char ch; struct node *lchild; struct node *rchild;}BiTNode, *BiTree;/*二叉树的先序创建*/void CreatTree(BiTree &T) { char c; sc原创 2012-10-27 15:20:01 · 872 阅读 · 0 评论 -
【数据结构】链表
#include#includestruct node { int data; struct node *next;};struct node *head,*tail,*p;int n=0;void creatNode();int length();int outNode(int i);void insertNode(int i,int dt原创 2012-10-04 07:44:10 · 584 阅读 · 0 评论 -
栈的实现
/* 栈,先进后出 */#include#include#define N 1 //初始化内存大小,以元素为单位 #define M 1 //内存扩增,以元素为单位 struct stack { int *base; int *top; int n; //记录栈的内存大小,以元素为单位 };/*定义一个栈对象*/ struct s原创 2012-10-11 13:42:46 · 516 阅读 · 0 评论 -
用栈实现十进制到二进制的转换
/* 栈,先进后出 */#include#include#define N 1 //初始化内存大小,以元素为单位 #define M 1 //内存扩增,以元素为单位 struct stack { int *base; int *top; int n; //记录栈的内存大小,以元素为单位 };struct stack S;v原创 2012-10-11 13:47:20 · 3383 阅读 · 0 评论 -
线性表的链式表示和实现
/* 栈和队列应该是线性表的一种特殊形式,一个先进后出,一个先进先出,所以线性表有所有可能的情况 */#include#includestruct node { int data; struct node *next;};/*将头结点和尾节点定为全局变量,这样就不要在函数间传来传去,还有p指针是用来遍历链表的*/ struct n原创 2012-10-11 13:41:00 · 1019 阅读 · 0 评论 -
线性表的顺序表示和实现<算法2.1-2.7>
/*这个程序我不用全局变量,因为这个习惯不好,在大型工程里面不合适会产生冲突*/#include#include/*线性表存储空间的初始分配量,分配5个以typedef为单位的存储内存,为了实验realloc函数,这里设为5,1*/#define LIST_INIT_SIZE 5#define LISTINCREMENT 1//线性表存储空间的分配增量str原创 2012-10-12 16:38:44 · 615 阅读 · 0 评论 -
队列的链式表示和实现
/*队列,先进后出,插入的东西放在队尾,取出时从队列拿出*/#include#include/*直接将结构体的对象和指针类型用一种简省的类型替代*/typedef struct QNode{ int data; struct QNode *next;}QNode, *QePtr;/*下面这个结构体是相当重要的,这样的话,在函数里只需要传QPtr类型的e对象这样就可以使用原创 2012-10-17 08:02:49 · 1353 阅读 · 0 评论 -
今年暑假不AC(贪心算法)
#includemain(){ int a[100],b[100],n; int count, flag, i, j, t; while(scanf("%d", &n)&&n){ /*首先将始终时间输入*/ for(i=0; i<n; i++){ scanf("%d%d", &a[i],&b[i]); } /*将输入以结束时间排序*/ for(原创 2012-10-30 15:09:27 · 627 阅读 · 0 评论 -
Huffman 编码压缩算法
前两天发布那个rsync算法后,想看看数据压缩的算法,知道一个经典的压缩算法Huffman算法。相信大家应该听说过 David Huffman 和他的压缩算法—— Huffman Code,一种通过字符出现频率,Priority Queue,和二叉树来进行的一种压缩算法,这种二叉树又叫Huffman二叉树 —— 一种带权重的树。从学校毕业很长时间的我忘了这个算法,但是网上查了一下,中文社区转载 2012-10-25 22:12:22 · 500 阅读 · 0 评论 -
快速排序
#includevoid quickSort(int a[], int start, int end);void main(){ int arr[10] = { 4, 6, 9, 1, 0, 2, 3, 8, 7, 5 }; quickSort(arr, 0, 9); for(int i=0; i<10; i++){ printf("%d ", arr[i]); }原创 2013-11-15 14:33:48 · 831 阅读 · 0 评论