
数据结构与算法
thistle2012
这个作者很懒,什么都没留下…
展开
-
寻找中位数
编写一个函数返回三个整数中的中间数。函数原型:int mid(int a, int b, int c),返回a,b,c三数中大小位于中间的一个数。#include#includeint mid(int a, int b, int c);int mid(int a, int b, int c){ int temp; if(a>b){ temp = a; a = b;原创 2015-01-28 19:30:48 · 2861 阅读 · 0 评论 -
斐波那契数列的实现方法
1.递归int Fib(int n){ if(n==0 || n==1) { return 1; } else if(n>=2) { return Fib(n-1)+Fib(n-2); }}2.线性算法:long long Fib(long long n){ int i; long原创 2015-04-02 10:07:50 · 512 阅读 · 0 评论 -
栈
STL编程#include #include using namespace std;void InitStack(stack &s, int n);void InitDest(stack &s, int n);void InitStack(stack &s, int n) //初始化原始数据栈{ for (int i = n; i > 0; i--) { s.pus原创 2015-04-15 22:58:16 · 417 阅读 · 0 评论 -
监听IP地址
本例实现从文件中读取IP地址并存储在结点链表中,每一个结点存储IP地址数据,并统计该IP地址在数据文件中出现的次数。随着每一个地址的读取,检查是否已经在链表中了。如果在,就将计数器加1,否则简单地将其插入链表尾部。/***********************************************Input (keyboard):name of file containing原创 2015-03-30 11:34:31 · 1150 阅读 · 0 评论 -
线性表线性(顺序)存储结构
实现顺序表的曾删查操作元素结构体:typedef struct{ ElemType vec[MAXSIZE]; int len; //顺序表的长度}SequenList;插入操作:bool InsertInSeqlist(SequenList *L,int i,ElemType x){ int j; if(L->len>=MAXSIZE) { printf("原创 2015-03-02 16:02:18 · 525 阅读 · 0 评论 -
线性表的链式存储结构
结点结构:#define Node LinkListNodetypedef int ElemType; //数据元素的类型typedef struct Node{ ElemType data; //数据域 struct Node* next; //指针域}*LinkList;创建链表:LinkList CreateList(int n){ ElemType x;原创 2015-03-02 20:28:36 · 411 阅读 · 0 评论 -
魔术师猜数
在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值。只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:“你算错了!”。请原创 2015-01-28 18:56:36 · 10049 阅读 · 5 评论 -
递归法计算游戏人员的年龄
有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,.....,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大年纪。提示:递归公式#includeint age(int n);int age(int n){ if (n == 1) retur原创 2015-01-28 18:55:00 · 5555 阅读 · 0 评论 -
还原算术表达式
编写程序求以下算式中XYZ的值。#include#includeint root(int x,int y,int n);int root(int x,int y,int n){ if (x == y) x = n / 2; else x = n - y; return x;}int main(){ int X=0, Y=0, Z=0;原创 2015-01-28 19:53:17 · 1118 阅读 · 0 评论 -
捕鱼和分鱼
ABCDE五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,将鱼分为5份,把多余的1条鱼扔掉,拿走自己的1份。B第二个本来,也将鱼分5份,把多余的1条鱼扔掉,拿走自己的1份。CDE依次醒来,也按同样的方法拿鱼。问他们合伙至少捕了多少条鱼?#include#includeint main(){ int n, i, x, flag = 1;转载 2015-01-28 19:13:53 · 1891 阅读 · 0 评论 -
随机数生成
计算机生成随机数的方法是线性同余法,通过特定的算法生成一系列毫无规则的数字,让用户看起来好象是随机数,但本质上是伪随机数。示例一:#include #include using namespace std;int main(int argc, char** argv) { cout<<"本机的最大随机数为:"<<RAND_MAX<<endl; for(int i=0;i<5;++原创 2016-04-03 10:37:58 · 676 阅读 · 0 评论