- 博客(30)
- 收藏
- 关注
原创 实现分块查找的算法
/*文件名:exp10-3.cpp*/#include #define MAXL 100 /*定义表中最多记录个数*/#define MAXI 20 /*定义索引表的最大长度*/typedef int KeyType;typedef char InfoType[10];typedef struct { KeyType key;
2013-01-29 14:25:26 2240 1
原创 实现二分查找的算法
/*exp10-2*/#include#define MAXL 100typedef int KeyType;typedef char InfoType[10];typedef struct { KeyType key;/*KeyType为关键字的数据类型*/ InfoType data;/*其他数据*/}NodeType;typedef NodeType
2013-01-28 20:43:49 857
原创 实现顺序查找的算法
/*exp10-1.cpp*/#include #define MAXL 100/*定义表中最多记录个数*/typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType key;/*KeyType为关键字的数据类型*/ InfoType data;/*其他数据*/}NodeType;
2013-01-28 20:15:16 969
原创 !采用递归和非递归方法求解F(n)
/*文件名:exp6-4.cpp*/#include #define MaxSize 100int fun1(int n){ int f; if (n==0) return(1); else { f=fun1(n/2); return(n*f); }}int fun2(int n)
2013-01-28 12:34:02 833
原创 求解背包问题
/*背包问题:设有不同价值、不同重量的物品n件,求从这n件物品中选取一部分物品的方案,使选中物品的总重量不超过指定的限制重量,便选中的物品的价值之和为最大*//*第i件物品的选择有两种可能:(1)物品i被选择,这种可能性仅当包含它不会超过方案总重量的限制时才是可行的。选中后,继续递归去考虑其余物品的选择(2)物品i不被选择,这种可能性仅当不包含物品i也有可能找到价值更大的方案的情况
2013-01-28 11:37:21 862
原创 求解n皇后问题
/*n皇后问题:在n*n方格棋盘上放置n个皇后,要求每个皇后不同行,不同列,不同左右对角线*//*exp6-2.cpp*/#include#includeconst int N=20;/*最多皇后个数*/int q[N];/*存放各皇后所在的行号*/int count=0;/*存放解个数*/void print(int n)/*输出一个解*/{ count++;
2013-01-28 10:31:35 836
原创 输出求解akm(2,1)的递推和求值过程
/*exp6-1.cpp*/#includeint count=1;int akm(int m,int n){ int g,f; printf("\t akm(%d,%d)",m,n); if(count++ % 3==0) printf("\n");/*每行输入3项*/ if(m==0) { printf("\t akm(%d,%d)=%d",0,n,n
2013-01-28 10:03:10 830
原创 !实现稀疏矩阵(采用三元组表示)的基本运算
/*exp5-4.cpp*/#include#define N 4typedef int ElemType;#define MaxSize 100/*矩阵非零元素最多个数*/typedef struct{ int r;/*行号*/ int c;/*列号*/ ElemType d;/*元素值*/}TupNode;/*三元组定义*/typedef struc
2013-01-28 09:23:55 6694
原创 求两个对称矩阵之和与乘积
/*exp5-3.cpp*/#include#define n 4#define m 10int value(int a[],int i,int j)/*返回压缩存储a中A[i][j]之值*/{ if(i>=j) return a[i*(i-1)/2+j]; else return a[j*(j-1)/2+i];}void madd(int a[],
2013-01-28 09:22:20 7239
原创 求一个矩阵的马鞍点
/*exp5-2.cpp*/#include#define M 4#define N 4void MinMax(int A[M][N]){ int i,j,have=0; int min[M],max[N]; for(i=0;i { min[i]=A[i][0]; for(j=0;j if(A[i][j] min[i]=A[i][j
2013-01-28 09:20:27 2156
原创 求5X5阶螺旋方阵
/*ex[5-1.cpp*/#include#define MaxLen 10void fun(int a[MaxLen][MaxLen],int n){ int i,j,k=0,m; if(n%2==0) m=n/2; else m=n/2+1; for(i=0;i { for(j=i;j { k++; a[i][j]=
2013-01-27 15:27:02 1453
原创 求一个串中出现的第一个最长重复子串
/*exp4-5.cpp*/#include#include#include#define MaxSize 100typedef struct{ char ch[MaxSize]; int len;/*串长*/}SqString;extern void StrAssign(SqString &str,char cstr[]);/*在algo4-1.cpp文件
2013-01-27 15:24:02 1690
原创 文本串加密和解密程序
/*exp4-4.cpp*/#include#include#define MaxSize 100typedef struct{ char ch[MaxSize]; int len;/*串长*/}SqString;extern void StrAssign(SqString &str,char cstr[]);extern void DispStr(SqSt
2013-01-27 15:22:44 2725
原创 !顺序串的各种模式匹配运算
/*exp4-3.cpp*/#include#include#define MaxSize 100typedef struct{ char ch[MaxSize];/*定义可容纳MaxSize个字符的空间*/ int len;/*标记当前实际串长*/}SqString;extern void StrAssign(SqString &str,char cstr[]
2013-01-27 15:20:58 1617
原创 !实现链串各种基本运算的算法
/*algo4-2.cpp*/#include#includetypedef struct snode{ char data; struct snode *next;}LiString;void StrAssign(LiString * &s,char t[]){ int i; LiString *r,*p; s=(LiString *)malloc
2013-01-27 15:19:21 1880
原创 实现顺序串各种基本运算的算法
/*algo4-1.cpp*/#include#define MaxSize 100/*最多的字符个数*/typedef struct{ char ch[MaxSize];/*定义可容纳MaxSize个字符的空间*/ int len;/*标记当前实际串长*/}SqString;void StrAssign(SqString &str,char cstr[])/*由串
2013-01-27 15:15:49 5032
原创 实现顺序队列各种基本运算的算法
/*algo3-4.cpp*/#include#includetypedef char ElemType;typedef struct qnode{ ElemType data; struct qnode *next;}QNode;typedef struct{ QNode *front; QNode *rear;}LiQueue;void
2013-01-27 15:09:26 2512
原创 实现顺序队列各种基本运算的算法
/*algo3-3.cpp*/#include#include#define MaxSize 5typedef char ElemType;typedef struct{ ElemType elem[MaxSize]; int front,rear;/*队首和队尾指针*/}SqQueue;void InitQueue(SqQueue * &q)/*初始化队列
2013-01-27 15:06:23 1809
原创 实现链栈各种基本运算的算法
/*algo3-2.cpp*/#include#includetypedef char ElemType;typedef struct linknode{ ElemType data;/*数据域*/ struct linknode *next;/*指针域*/}LiStack;void InitStack(LiStack * &s){ s=(LiStack
2013-01-27 15:04:06 5553
原创 实现顺序栈各种基本运算的算法
/*algo3-1.cpp*/#include#include#define MaxSize 100typedef char ElemType;typedef struct { ElemType elem[MaxSize]; int top;/*栈指针*/}SqStack;void InitStack(SqStack * &s)/*[初始化栈s*/{
2013-01-27 15:01:35 12495
原创 !求两个多项式相加运算
/*exp2-7.cpp*/#include#include#define MAX 20/*多项式最多项数*/typedef struct /*定义存放多项式的数组类型*/{ float coef;/*系数*/ int exp;/*指数*/}PolyArray[MAX];typedef struct pnode/*定义单链表结点类型*/{ float c
2013-01-27 14:58:21 1649
原创 !实现循环双链表各种基本运算的算法
/*algo2-5.cpp*/#include #include typedef char ElemType;typedef struct DNode/*定义双链表结点类型*/{ ElemType data; struct DNode *prior;/*指向前驱结点*/ struct DNode *next;/*指向后继结点*/}DLinkList;void
2013-01-27 14:56:36 2658
原创 求集合(用有序单链表表示)的并、交和差运算
/*exp2-6.cpp*/#include#includetypedef char ElemType;typedef struct LNode/*定义单链表结点类型*/{ ElemType data; struct LNode *next;}LinkList;extern void DispList(LinkList *L);/*包含在algo2-2.cpp文
2013-01-27 14:53:14 7333 1
原创 实现双链表的各种基本运算的算法
/*algo2-3.cpp*/#include#includetypedef char ElemType;typedef struct DNode /*定义双链表结点类型*/{ ElemType data; struct DNode * prior;/*指向前驱结点*/ struct DNode * next;/*指向后继结点*/}DLinkList;voi
2013-01-27 14:49:32 5402
原创 实现单链表各种基本运算的算法
/*algo2-2.cpp*/#include#includetypedef char ElemType;typedef struct LNode/*定义单链表结点类型*/{ ElemType data; struct LNode *next;}LinkList;void InitList(LinkList *&L){ L=(LinkList *)mal
2013-01-27 14:46:28 3577
原创 实现循环单链表各种基本运算的算法
/*algo2-1.cpp*/#include#includetypedef char ElemType;typedef struct LNode/*定义单链表结点类型*/{ ElemType data; struct LNode * next;}LinkList;void InitList(LinkList * &L)/*创建头结点*/{ L=(Lin
2013-01-27 14:39:57 4352
原创 实现顺序表各种基本运算的算法
/*algo2-1.cpp*/#include #include #define MaxSize 50typedef char ElemType;typedef struct { ElemType elem[MaxSize]; int length;}SqList; /*顺序表类型定义*/void InitList(Sq
2013-01-27 14:36:30 10764
原创 求一个正整数的各位数字之和
#include int func(int num) /*分解num的各位数字,返回其和*/{ int s=0; do { s+=num%10; /*累计各位数字之和*/ num/=10; /*求下一数值位*/ }while(num); return(s);}void main(){ int n; printf("\n");
2013-01-27 14:32:50 4458
原创 求素数
#include #include int prime(int x) /*判断正整数x是否为素数*/{ int i; for (i=2;i if (x%i==0) return 0; /*若x不是素数,则退出并返回0*/ return 1;}void main(){ int n,i,j=0;
2013-01-27 13:56:15 337
原创 判断一个字符串是否为回文
#include#include#define MAX 100 /*字符串的最大长度*/int func(char s[]){ int flag=1; int i,j,slen=strlen(s);/*slen为字符串s的长度*/ for(i=0,j=slen-1;i if(s[i]!=s[j]) { flag=0;
2013-01-27 13:54:28 719
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人