
数据结构与算法
落伍者
这个作者很懒,什么都没留下…
展开
-
根据二叉树的先序遍历和中序遍历建立二叉树
根据二叉树的先序遍历和中序遍历建立二叉树rebacktree 根据二叉树的先序遍历和中序遍历建立二叉树。rebacktree1 根据二叉树的后序序遍历和中序遍历建立二叉树。#include "stdio.h"#include "stdlib.h"typedef struct node{char data;struct node *lchild;struct node *rchild;} NO原创 2006-03-06 22:10:00 · 5949 阅读 · 1 评论 -
B树算法
B树算法 --------------------------------------------------------------------------------作者:icephoton 来源: 类别:数据库技术 日期:2006-02-07 今日/总浏览: 7/1234 这个结构一般用于数据库的索引,综合效率较高。 另外还有一种与此类似的树结构叫B+树,像 Berker转载 2006-04-15 10:06:00 · 1818 阅读 · 0 评论 -
n*n按行按列升序矩阵中找数问题
#define N 3main(){ int a[N][N]={{1,2,4},{2,3,5},{4,5,7}}; int i,j; int x; int flag=0; i=0; j=N-1; printf("please input x/n"); scanf("%d",&x); while(i0) { if (a[i][j]==x) { flag=原创 2006-12-02 22:13:00 · 1536 阅读 · 0 评论 -
格雷码算法
void putsgray(int a[],int m){ int i; for(i=m;i>=1;i--) { printf("%d",a[i]); } printf("/n");}void gray(int n,int a[],int m){ if(n==1) { a[n]=1-a[n]; putsgray(a,m); } else { gray(原创 2006-12-02 22:10:00 · 2175 阅读 · 0 评论 -
哈夫曼树
#include #include #include #define MAX 65535typedef struct { unsigned int weight; unsigned int parent,lchild,rchild;}HTNode,*HuffmanTree;typedef char** HuffmanCode;void HuffmanCoding(HuffmanTree *HT,H原创 2007-12-19 08:08:00 · 690 阅读 · 0 评论 -
顺序队
#include #define MAXSIZE 6 //设置队列的最大长度为100typedef int ElemType ;typedef struct{ElemType elem[MAXSIZE]; /*定义一个一维数组存放队列中各元素,元素类型ElemType根据实际需要确定*/ int front; /*头指针,指向队头元素*/int rear;原创 2009-06-12 16:32:00 · 675 阅读 · 0 评论 -
稀疏矩阵
#include #include #define MAXSIZE 1250typedef int ElemType ;typedef struct{int i,j;ElemType e;}Triple;typedef struct{Triple data[MAXSIZE+1];int mu,nu,tu;}TSMatrix;/*三元组专置算法*/void TransposeSMatrix(TSMa原创 2009-06-12 16:35:00 · 584 阅读 · 0 评论 -
动态数组
#include #include #include #define MAX_ARRAY_DIM 8#define OK 1#define ERROR 0typedef int ElemType ;typedef struct { ElemType * base; int dim; int *bounds; int *constants;/*数组映像函数常数基址*/}Array;int i原创 2009-06-12 16:41:00 · 575 阅读 · 0 评论 -
prim
#include #include #define MAX_VERT_NUM 40#define INTMAX 32767typedef struct ArcNode{ int adjvex; int cost; struct ArcNode *nextarc;}ArcNode;typedef struct VNode{ArcNode *firstarc; /*指向第一条依附该顶点的弧的指针原创 2009-06-12 16:37:00 · 542 阅读 · 0 评论 -
根据qq宠物等级计算级别
下面的算法可以根据输入的qq宠物的成长值,计算出宠物的等级。其中calstep(),求得依等级所需的成长值,而实际成长到下一级所需要的成长值由上一级成长到当前级别所需成长值+依等级所需的成长值。 #include "stdio.h"int getlevel(long g);main(){ long g; scanf("%ld",&g); printf("%d/n",ge原创 2006-03-05 22:07:00 · 3483 阅读 · 0 评论 -
图的遍历
#include "stdlib.h"#define N 30typedef struct node{ int vno; struct node *next;} edgenode;typedef edgenode* Graph[N];int createlist(Graph g);void DfsTravel(Graph g,int vn);void Dfs(Graph g,int i);void原创 2006-03-04 15:10:00 · 1094 阅读 · 2 评论 -
整数划分问题
整数划分问题将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。求正整数n的不同划分个数。 例如正整数6有如下11种不同的划分: 6; 5+1; 4+2,4+1+1; 3+3,3+2+1,3+1+1+1; 2+2+2,2+2+1+1,2+1原创 2006-03-11 20:41:00 · 2141 阅读 · 0 评论 -
二叉排序树
二叉排序树的 搜索、插入、删除节点的c语言描述的算法。main()中用了一组测试数据#include "stdio.h"#include "stdlib.h" #define MAX 6typedef struct node{ int data; struct node *lchild; struct node *rchild;}NODE,*NODEP; ;int Delete原创 2006-03-12 21:24:00 · 1045 阅读 · 0 评论 -
0-1背包算法(动态规划)
给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?0-1背包问题是一个特殊的整数规划问题。 设所给0-1背包问题的子问题的最优值为m(i,j),即m(i,j)是背包容量为j,可选择物品为i,i+1,…,n时0-1背包问题的最优值。由0-1背包问题的最优子结构性质,可以建立计算m(i,j)的原创 2006-03-22 12:14:00 · 8412 阅读 · 7 评论 -
硬币找零(动态规划)
#include "stdlib.h"#define N 63 void GetChange(int n,int j,int m[],int c[][N] ) {/*下标从1开始*/ int Max=10000; int k,i,t; int b[5]={0}; /*最好作为一个参数*/ for( i=1;i c[i][0]=0; for(i=1;i原创 2006-03-23 21:36:00 · 1926 阅读 · 1 评论 -
n后问题
先贴代码,现在没时间。有时间的时候慢慢写#include "math.h"int sum=0;int place(int x[],int i);void queen(int x[],int n,int t) ;void queen2(int x[],int n);void main(){ int x[8],t ; sum=0; queen(x,8,0); printf("%d/n",su原创 2006-03-17 12:58:00 · 2507 阅读 · 0 评论 -
0-1背包问题(回溯法)
前面这块转贴原理及c++代码实现的回溯算法-----带剪枝的递归回溯;最后给出一个不带剪枝的c语言描述的递归回溯算法且不能给出选择方案,只给出最大价值回溯法: 回溯法是一个既带有系统性又带有跳跃性的的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结转载 2006-03-19 21:44:00 · 8958 阅读 · 2 评论 -
硬币找零问题(动态规划)
这里贴出c#的代码 private void button4_Click(object sender, System.EventArgs e) { int [] m=new int [] {0,2,4,8,16}; int[,] c=new int [5,62]; for(int i=12;i GetChange(4,i,m,c); } private void Ge原创 2006-03-23 21:13:00 · 2599 阅读 · 0 评论 -
链表反序的递归算法
下面给出链表的反序的c语言描述的算法#include "stdio.h"typedef struct strtest{ int a; struct strtest *next;} STRA ;void revlist(STRA **h, STRA *p){STRA *q; if(p->next!=NULL) { revlist(h,p->next); q=p->next; q->原创 2006-03-27 16:57:00 · 1638 阅读 · 0 评论 -
最小生成树Prim算法
最小生成树Prim算法 #includeconst int MAX = 10000;const int INF = 1000000;int clo[MAX];int low[MAX];int c[MAX][MAX];bool flag[MAX];int beg[MAX],end[MAX];//记录生成树的每条边的两个顶点int Prim(int n){ int i, j, k, ans = 0转载 2009-06-12 16:38:00 · 574 阅读 · 1 评论