摘要:
编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。(1) 建立一个顺序表,含有n个数据元素。(2) 输出顺序表及顺序表的长度。(3) 在顺序表给定的位置i,插入一个值为x的结点。(4) 在顺序表中删除值为x的结点或者删除给定位置i的结点。(5) 将顺序表逆置,将结果保存到另外的顺序表中。(6) 将顺序表按升序排序。(7) 将两个顺序有序表A和B合并为一个有序表C。(8) 在主函数中设计一个简单的菜单,分别测试上述算法。综合训练:利用顺序表实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等)#include<stdio.h>int Delete(int *s 阅读全文
随笔档案-2012年04月
poj 3984 迷宫问题
2012-04-13 17:04 by 璋廊, 198 阅读, 收藏,
摘要:
定义一个二维数组: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 璋廊, 225 阅读, 收藏,
摘要:
/**************实验二:单链表的基本操作编写一个完整的程序,实现单链表的建立、插入、删除、输出等基本操作。(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 璋廊, 174 阅读, 收藏,
摘要:
/***************(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 璋廊, 162 阅读, 收藏,
摘要:
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 璋廊, 167 阅读, 收藏,
摘要:
/*****输入两个字符串,寻找第二个是第一个的字串;此算法是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 璋廊, 224 阅读, 收藏,
摘要:
#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 阅读全文
两个矩阵相乘!
2012-04-07 21:01 by 璋廊, 445 阅读, 收藏,
摘要:
/***********两个矩阵相乘;输入n,m分别代表是行、列,接下来是矩阵的元素;输入x、y另一个矩阵的行和列,接下来是矩阵的元素*************/#include<stdio.h>#include<string.h>int main(){ int a[20][20],b[20][20],c[20][20]; int n,m,i,j,k,x,y; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%d",& 阅读全文
hdu 1258 Sum It Up
2012-04-01 17:13 by 璋廊, 325 阅读, 收藏,
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1258Problem DescriptionGiven a specified total t and a list of n integers, find all distinct sums using numbers from the list that add up to t. For example, if t=4, n=6, and the list is [4,3,2,2,1,1], then there are four different sums that equal 4: 4,3+1,2+ 阅读全文
浙公网安备 33010602011771号