1、线性表 Time Limit:1000MS Memory Limit:30000KBTotal Submit:854 Accepted:172 Description 实现一个线性表:参照课本 P5上的 sq_delete函数,对一个 n不超过 210的线性表进行删除操作 Input 第一行有一个整数 n,表示线性表的大小,第二行有 n个整数,分别是list1,list2.listn。第三行有一个整数 q,表示 q次删除操作,接下来 q行,每行有一个整数 k,表示删除线性表中第 k个元素。 Output 对于每次删除操作输出一行,如果 k不合法,输出 -1, 否则输出删除的元素。 Sample
2、 Input 53 2 1 5 43552 Sample Output 4-12Source 06级数据结构课程上机实践 环形队列 Time Limit:1000MS Memory Limit:30000KBTotal Submit:517 Accepted:162 Description 实现环形队列(MAXN 不超过 100001),要求能够进行进队出队操作,参考课本P15页例程。 Input 初始时,队列为空。第一行有一个整数 q,表示操作的个数,接下来的 q行里,每行格式如下:enqueue xxx, 表示把整数 xxx进队;dequeue, 表示出队. Output 对于每次出队操作
3、,打印出队元素,如出队不成功,打印-1. Sample Input 3enqueue 1234567890dequeuedequeue Sample Output 1234567890-1Source 06级数据结构课程上机实践 铁路调度 Time Limit:1000MS Memory Limit:30000KBTotal Submit:223 Accepted:64 Description 如下图,表示一个铁路调度站,为栈式结构,所有的火车必须右端进去并且从左端离开,现在有 n(0 n 10)列火车要进行调度,按照进入的顺序从 1到n进行编号。对于一个给定的一个出站序列,你需要判断是否是一
4、个合法的序列。例如: n = 4, 出站序列为 4321, 这是合法的,1234 依次进栈,再依次出栈得到 4321Input 输入第一行是一个整数 k,表示有 k个序列要求你进行判断,接下来 2到 k+1里每行有一个整数 n和一个数字序列 a1.an. Output 输出只有 k行,对于第 i个序列如果它是一个合法的出站序列,输出“yes“,否则输出“no“(不包括括号) Sample Input 34 43214 34213 312Sample Output yesyesnoSource 06级数据结构课程上机实践 Link-list Time Limit:1000MS Memory Li
5、mit:30000KBTotal Submit:475 Accepted:126 Description 实现线性链表的创建于插入(插入到已有元素之后)。 Input 第一行有一个整数 n( 0 n = 64 ),为初始链表的元素个数, 第二行有 n个整数,依次为链表中的元素。第三行有一个整数 q,表示插入操作的个数。接下来 q行里每行内有两个整数,第一个整数为链表中已经出现的元素,第二整数是要被插入的元素, 并且数据保证链表中始终不会出现相同的元素。Output 对于每次操作,将链表从头到尾打印出来,整数间用空格隔开。Sample Input 23 523 45 6Sample Output
6、 3 4 53 4 5 6Source 06级数据结构课程上机实践 字符串匹配 Time Limit:1000MS Memory Limit:30000KBTotal Submit:194 Accepted:11 Description 给你 2个字符串(可能包括数字以及标点),长度=50124,请你求出最长的连续的公共子序列。 Input 输入有 2个字符串 A,B, 各占一行。 Output 输出字符串 A和 B的最长连续公共子序列的长度 L。 Sample Input aaaabaSample Output 1Source 06级数据结构课程上机实践 string Time Limit:
7、1000MS Memory Limit:30000KBTotal Submit:437 Accepted:97 Description 实现字符串的 strcat, strsub, strequ操作,参照课本 P62例程 Input 第一行有一个字符串,为被操作字符串的初值(可能为空串),接下来有一个整数 q,表示操作的个数,接下来 q行每行为下列情况的一种:1. strcat ssss 表示把字符串 ssss连接到被操作的字符串之后;2. strsub b e 表示求被操作字符串的子串(Sb.Sb+e-1);3. strequ ssss 判断被操作字符串与 ssss是否相等(每次 strca
8、t操作之后,被操作的字符串被永久的改变。)被操作字符串最长长度不超过 1024 Output 对于情况 1,输出一行,为连接 ssss之后的被操作字符串。(数据保证不会操作fail)对于情况 2,输出一行,输出子串,如失败输出“fail“(不包含引号)对于情况 3,输出一行,如果相等,输出“yes“,否则输出“no“; Sample Input abc4strcat destrsub 1 4strsub 0 10000strequ abcd Sample Output abcdebcdefailnoSource 06级数据结构课程上机实践 选择排序 Time Limit:1000MS Memo
9、ry Limit:30000KBTotal Submit:319 Accepted:144 Description 实现选择排序 Input 第一行一个整数 n(n 1024),第二行有 n个整数。 Output 输出一行,为排序后的 n个整数,以空格隔开 Sample Input 99 8 7 6 5 4 3 2 1 Sample Output 1 2 3 4 5 6 7 8 9Source 06级数据结构课程上机实践 快速排序 Time Limit:1000MS Memory Limit:30000KBTotal Submit:334 Accepted:139 Description 实现
10、快速排序 Input 每个 case有两行,第一行一个整数 n(n = 20000),第二行有 n个整数。处理到文件结尾 Output 输出一行,为排序后的 n个整数,以空格隔开 Sample Input 99 8 7 6 5 4 3 2 1 Sample Output 1 2 3 4 5 6 7 8 9 Source 06级数据结构课程上机实践 冒泡排序 Time Limit:1000MS Memory Limit:30000KBTotal Submit:221 Accepted:131 Description 实现冒泡排序 Input 每个 case有两行,第一行一个整数 n(n = 1024),第二行有 n个整数。处理到文件结尾 Output 输出一行,为排序后的 n个整数,以空格隔开 Sample Input