代码改变世界

hdu 1159 最长公共子序列

2012-05-07 19:41 by 璋廊, 188 阅读, 0 推荐, 收藏, 编辑
摘要:A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X if there exists a strictly increasing sequence <i1, i2, ..., ik> of indices of X 阅读全文

实验四 栈和队列的基本操作

2012-05-05 22:23 by 璋廊, 633 阅读, 0 推荐, 收藏, 编辑
摘要:(1)采用链式存储实现栈的初始化、入栈、出栈操作。(2)采用顺序存储实现栈的初始化、入栈、出栈操作。(3)采用链式存储实现队列的初始化、入队、出队操作。(4)采用顺序存储实现循环队列的初始化、入队、出队操作。(5)在主函数中设计一个简单的菜单,分别测试上述算法。#include<stdio.h>#include<stdlib.h>typedef struct point //建立结构体{ int data; struct point *right,*left;}Link,*List;List built(int n)//建立链表;{ List h,p,s; int i, 阅读全文

实验三 双链表

2012-05-05 22:21 by 璋廊, 224 阅读, 0 推荐, 收藏, 编辑
摘要:#include<stdio.h>#include<stdlib.h>typedef struct point //建立结构体{ int data; struct point *right,*left;}Link,*List;List built(int n)//建立链表;{ List h,p,s; int i,x; h=(List)malloc(sizeof(Link)); s=h; s->left=NULL; for(i=1;i<=n;i++) { p=(List)malloc(sizeof(Link)); scanf("%d",&a 阅读全文

第一次数据结构作业

2012-04-15 22:21 by 璋廊, 273 阅读, 0 推荐, 收藏, 编辑
摘要:编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。(1) 建立一个顺序表,含有n个数据元素。(2) 输出顺序表及顺序表的长度。(3) 在顺序表给定的位置i,插入一个值为x的结点。(4) 在顺序表中删除值为x的结点或者删除给定位置i的结点。(5) 将顺序表逆置,将结果保存到另外的顺序表中。(6) 将顺序表按升序排序。(7) 将两个顺序有序表A和B合并为一个有序表C。(8) 在主函数中设计一个简单的菜单,分别测试上述算法。综合训练:利用顺序表实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等)#include<stdio.h>int Delete(int *s 阅读全文

poj 3984 迷宫问题

2012-04-13 17:04 by 璋廊, 191 阅读, 0 推荐, 收藏, 编辑
摘要:定义一个二维数组:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。Input一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。Output左上角到右下角的最短路径,格式如样例所示。Sample Input0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0Sample Out 阅读全文

数据结构作业二(1)

2012-04-10 21:50 by 璋廊, 220 阅读, 0 推荐, 收藏, 编辑
摘要:/**************实验二:单链表的基本操作编写一个完整的程序,实现单链表的建立、插入、删除、输出等基本操作。(1)建立一个带头结点的单链表。(2)计算单链表的长度,然后输出单链表。(3)查找值为x的直接前驱结点q。(4)删除值为x的结点。(5)把单向链表中元素逆置(不允许申请新的结点空间)。(6)利用(1)建立的链表,实现将其分解成两个链表,其中一个全部为奇数,另一个全部为偶数(尽量利用已知的存储空间)。****************/#include<stdio.h>#include<stdlib.h>typedef struct point { int 阅读全文

数据结构作业二(2)

2012-04-10 21:45 by 璋廊, 166 阅读, 0 推荐, 收藏, 编辑
摘要:/***************(2)约瑟夫环问题:设有n个人围坐在圆桌周围,从某个位置开始编号为1,2,3,…,n,坐在编号为1的位置上的人从1开始报数,数到m的人便出列;下一个(第m+1个)人又从1开始报数,数到m的人便是第二个出列的人;如此重复下去,直到最后一个人出列为止,得到一个出列的编号顺序。例如,当n=8,m=4时,若从第一个位置数起,则出列的次序为4,8,5,2,1,3,7,6。试编写程序确定出列的顺序。要求用不带头结点的单向循环链表作为存储结构模拟此过程,按照出列顺序打印出个人编号****************/#include<stdio.h>#include& 阅读全文

最小生成树poj2421 Constructing Roads

2012-04-08 13:43 by 璋廊, 157 阅读, 0 推荐, 收藏, 编辑
摘要:http://poj.org/problem?id=2421DescriptionThere are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect to each other. We say two village A and B are connected, if and only if there is a road between A and B, or there exists a village C 阅读全文

字符串匹配BF

2012-04-08 12:46 by 璋廊, 162 阅读, 0 推荐, 收藏, 编辑
摘要:/*****输入两个字符串,寻找第二个是第一个的字串;此算法是kmp相比古老算法效率更高;************/#include<stdio.h>#include<string.h>void Getnext(char *t,int *next){ int i,j,k; k=strlen(t); next[0]=0; i=0;j=-1; while(i<k) { if(j==-1||t[i]==t[j]) { i++;j++; next[i]=j; } else j=next[j]; }}int KMP(char *s,char *t,int *next){ i 阅读全文

寻找子串经典算法

2012-04-08 12:44 by 璋廊, 217 阅读, 0 推荐, 收藏, 编辑
摘要:#include<stdio.h>int Strlen(char *s)//统计字符串的长度;{ int h=0; while(s[h]!='\0') { h++; }return h;}void Strcpy(char *s,char *str)// 串的复制;{ int i,k; k=Strlen(str); for(i=0;i<k;i++) { s[i]=str[i]; } s[i]='\0';//不要忘了末位加上‘\0’; return ;}void Concat(char *s,char *str1,char *str )//把str 阅读全文