数 据 结 构 实 验 报 告
1000实验一 顺序表的删除
Description
实现一个线性表,对一个n不超过1000的线性表进行删除操作。
Input
第一行有一个整数n,表示线性表的大小,第二行有n个整数,分别是list1,list2...listn。第三行有一个整数q,表示q次删除操作,接下来q行,每行有一个整数k,表示删除线性表中第k个元素。(输入有多组测试数据,以EOF结束)
Output
对于每次删除操作输出一行,如果k不合法(k大于n或者k为0),输出 -1, 否则输出删除的元素。
Sample Input
5 3 2 1 5 4 3 5 5 2
Sample Output
4 -1 2
#include
void sq_delete(int list[],int n,int j,int k[]){ int i,t;
for(i=0;i
printf(\ for(t=k[i];t n--;} } } int main(){ int z,n,list[1024],j,k[1024]; scanf(\ for(z=0;z for(z=0;z 运行结果: 1001实验二 链表及其多项式相加 Description 通过有序对输入多项式的各个项,利用单链表存储该一元多项式,并建立的2个存储一元多项式的单链表,然后完成2个一元多项式的相加,并输出相加后的多项式。 Input 输入数据有多组,对于每组测试数据,第一行一个整数n,表示第一个多项式La的项数;接下来n行,每行表示多项式的一项,包含两个元素,表示系数和指数;接下来一个整数m,表示第二个多项式Lb的项 数;接下来m行,每行表示多项式的一项,包含两个元素,表示系数和指数;两个多项式的输入都是按指数从小到大。(n,m<=1000) Output La与Lb相加之后的多项式。 按指数从小到大输出,每行一项,用空格把系数和指数分开。 Sample Input 3 1 2 2 3 3 4 3 4 3 2 5 4 6 Sample Output 1 2 6 3 3 4 2 5 4 6 #include int shu,zhishu; struct jiegou *next; } *a,*b,*c; void shuru() { jiegou *p,*q; int i,j,n,m,c,d; scanf(\ p=a=(struct jiegou *)malloc(sizeof(jiegou)); for(i=0;i q=(struct jiegou *)malloc(sizeof(jiegou)); scanf(\ q->shu=d; q->zhishu=c; p->next=q; p=q; } p->next=NULL; scanf(\