C语言数据结构不会啊 求大神解答 10

老师布置的作业,身心不会求解答一、实验内容实验一顺序表1.目的(1)掌握线性表的概念。(2)熟练掌握线性表的顺序存储结构。(3)熟练掌握线性表在顺序存储结构上的运算。(4... 老师布置的作业,身心不会 求解答

一、实验内容
实验一 顺序表
1.目的(1)掌握线性表的概念。(2)熟练掌握线性表的顺序存储结构。(3)熟练掌握线性表在顺序存储结构上的运算。(4)了解测试的思想。
2.内容
(1)编写算法实现顺序表中元素的逆置。要求按用户输入的数据建立一个顺序表。在逆置的过程中使用最少的辅助存储单元。测试要求:在空表、长度为奇数和偶数的情况下测试程序运行情况。
(2)己知顺序表中的元素非递减有序排列,编写算法删除顺序表中值相同的多余的元素。测试要求:在空表、有1组相同元素、有2组连续相同元素、有2组以上不连续相同元素的情况下测试程序运行情况。
(3)编写算法,在非递减有序的顺序表中,插入一个给定的元素,插入后该顺序表仍然递增有序。测试要求:在空表、表头、表尾、表中间插入及位置非法的情况下测试程序运行情况。
(4)有两个顺序表A(有m个元素)和B(有n个元素),其元素均按从小到大的升序排列。编写算法,将这两个顺序表合并成一个顺序表C,要求C也是按从小到大的升序排列。测试要求:在A与B均空、A与B一个为空、A与B均不空的情况下测试程序运行情况。
实验二 链表
1.目的(1)掌握链表的概念。(2)熟练掌握线性表的链式存储结构。(3)熟练掌握线性表在链式存储结构上的运算。
2.内容
(1)编写算法,根据用户输入的整数分别用尾插法和头插法创建一个带头结点的单链表,-1作为输入数据的结束符。测试要求:建立空链表、非空链表的情况下测试程序运行情况。
(2)编写算法,在带有头结点的单链表中查找序号为i的结点和值为x的结点并输出。测试要求:在空链表、i与x在链表头、i与x在链表尾、i与x在链表中间、i与x在链表中不存在的情况下测试程序运行情况。
(3)己知单链表中的元素非递减有序排列,编写算法删除单链表中值相同的多余的元素。测试要求:在空链表、有1组相同元素、有2组连续相同元素、有2组以上不连续相同元素的情况下测试程序运行情况。
(4)已知单链表中的数据元素递增有序,编写算法,删除表中值在min与max之间的结点。测试要求:在空链表、max小于链表第1个元素值、min大于链表最后1个元素值、min与max在链表中间的情况下测试程序运行情况。
展开
 我来答
百度网友5aec452
2014-12-01 · TA获得超过152个赞
知道答主
回答量:42
采纳率:0%
帮助的人:17万
展开全部
整块源程序: #include<stdio.h> #define maxsize 1024 typedef int datatype; typedef struct {
datatype data[maxsize]; int length; } sequenlist;
void setNull(sequenlist *L) { L->length=0;}

void reverse(sequenlist *L) { int i,j; datatype t;
for(i=0,j=L->length-1;i<j;i++,j--) {t=L->data[i];L->data[i]=L->data[j];L->data[j]=t;} }
void del(sequenlist * L) { int i=0,j=0; for(i=0;i<L->length-1;i++) { if(L->data[i]==L->data[i+1]) { for(j=i;j<L->length-1;j++) L->data[j]=L->data[j+1]; L->length--; i=i-1; } } }
void hebing(sequenlist * L3,sequenlist * L4,sequenlist * L5) { int i=0,k=0,j=0;
L5->length=L3->length+L4->length;
for(i=0,k=0;i<=L3->length-1,k<=L3->length-1;i++,k++) L5->data[k]=L3->data[i]; for(j=0;j<=L4->length-1;j++) { L5->data[k++]=L4->data[j]; } }
void insert(sequenlist * L,int x) { int i,k; i=0;
while((i<=L->length-1)&&(x>=L->data[i])) i++;
for(k=L->length-1;k>=i;k--) L->data[k+1]=L->data[k]; L->data[i]=x; L->length ++; }

void main()
{ sequenlist L1,L2,L3,L4,L5,L6; int i=0,x=0,k=0,j=0,t=0; datatype data; setNull(&L1);
printf("请输入逆置顺序表的初始数据,以-1结束\n"); scanf("%4d",&data); while(data!=-1) { L1.data[L1.length]=data; L1.length ++;
scanf("%4d",&data); }
reverse(&L1);
printf("逆置后的顺序表如下:\n");
for(i=0;i<=L1.length-1;i++) printf("%4d",L1.data[i]); printf("\n"); setNull(&L2);
printf("请输入非递减有序顺序表的初始数据,以-1结束\n"); scanf("%4d",&data); while(data!=-1) { L2.data[L2.length]=data; L2.length ++;
scanf("%4d",&data); } del(&L2); for(i=0;i<=L2.length-1;i++) { k=i; for(j=k+1;j<L2.length;j++) if(L2.data[k]>L2.data[j]) k=j;
t=L2.data[i];L2.data[i]=L2.data[k];L2.data[k]=t; }
printf("删除后,顺序表由小到大排序后为:\n"); for(i=0;i<L2.length;i++) printf("%4d",L2.data[i]); printf("\n"); setNull(&L3);
printf("请输入非递减有序顺序表的初始数据,以-1结束\n"); scanf("%4d",&data); while(data!=-1) { L3.data[L3.length]=data; L3.length ++;
scanf("%4d",&data); }

setNull(&L4);
printf("请输入非递减有序顺序表的初始数据,以-1结束\n"); scanf("%4d",&data); while(data!=-1) { L4.data[L4.length]=data; L4.length ++;
scanf("%4d",&data); }
setNull(&L5);
hebing(&L3,&L4,&L5); for(i=0;i<=L5.length-1;i++) { k=i; for(j=k+1;j<L5.length;j++) if(L5.data[k]>L5.data[j]) k=j;
t=L5.data[i];L5.data[i]=L5.data[k];L5.data[k]=t; } printf("合并后后,递增顺序表如下:\n"); for(i=0;i<=L5.length-1;i++) printf("%4d",L5.data[i]); printf("\n"); setNull(&L6);
printf("请输入非递减有序顺序表的初始数据,以-1结束\n"); scanf("%4d",&data); while(data!=-1) { L6.data[L6.length]=data; L6.length ++;
scanf("%4d",&data); }
printf("请输入要插入的数据:"); scanf("%4d",&x); for(i=0;i<=L6.length-1;i++) { k=i; for(j=k+1;j<L3.length;j++) if(L6.data[k]>L6.data[j]) k=j;
t=L6.data[i];L6.data[i]=L6.data[k];L6.data[k]=t; }
insert(&L6,x);
printf("插入数据后,递增顺序表如下:\n"); for(i=0;i<=L6.length-1;i++) printf("%4d",L6.data[i]); printf("\n"); }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT孤鹜
2014-12-01 · TA获得超过4197个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3522万
展开全部
我去太长了,没人做的,建议还是自己网上找点资料做做!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式