数据结构实验实习题答案
更新时间:2024-07-02 16:02:01 阅读量: 综合文库 文档下载
实验一 线性表
1. 设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。
分析:其实这个题在学C语言时就已经写过了,这里采用顺序表来存储数据。主要就是考虑插入的位置是不是在最后一个,如果不在最后一个,那么就要移动数据了,算法很简单就不再说了,这里的数据都看成是整型的。 源程序:
//1.1.c
#include
#include
void Insert(int* p,int length,int n){//插入函数
int i,j;
int flag=0;
if(n>=p[length-1]){//n比最大数还要大时
p[length]=n;
flag=1;
}
else{
for(i=length-2;i>=0;i--){
if(n>=p[i]){//插入n
for(j=length;j>=i+2;j--){
p[j]=p[j-1];
}
p[i+1]=n;
flag=1;
break;
}
}
}
if(flag==0){//n为最小数时
for(j=length;j>=1;j--){
p[j]=p[j-1];
}
p[0]=n;
}
}
int main(){
int L[10]={1,3,6,8,9,10,15};//初始化一个非递减速有顺表
int length=7;//初始化表长
int i,x;
printf(\插入前的顺序表为:\\n\
for(i=0;i printf(\ } printf(\请输入要插入的整数:\\n\ scanf(\ Insert(L,length,x);//插入x printf(\插入%d后的顺序表为:\\n\ for(i=0;i<=length;i++){ printf(\ } printf(\ system(\ return 0; } 2. 用单链表ha 存储多项式A(x )=a0+a1x1+a2x2+…+anxn(其中aI为非零系数),用单链表hb 存储多项式B(x )=b0+b1x1+b2x2+…+bmxm(其中bj为非零系数),要求计算C(x )= A(x )+B(x ),结果存到单链表hc中。试写出程序。 分析:这题主要是两个链表的相加,注意指针不要弄错就行,源程序有很详细的注释。 源程序: //1.2.c #include static int n; static int m; static int max; struct Polynomial{//多项式系数结构体 float data; struct Polynomial* next; }; struct Polynomial* Creat_H(int k){//创建多项式系数的链表 struct Polynomial* L; struct Polynomial* p; p=(struct Polynomial*)malloc(sizeof(struct Polynomial)); L=p; float temp; int i; printf(\请依次输入系数(中间用空格隔开):\\n\ for(i=0;i<=k;i++){ scanf(\ p->data=temp; if(i==k){ p->next=NULL; break; } p->next=(struct Polynomial*)malloc(sizeof(struct Polynomial)); p=p->next; } return L; } struct Polynomial* Calculate(struct Polynomial* Pa,struct Polynomial* Pb){ //计算两个多项式相加 struct Polynomial* Pc; struct Polynomial* L; int i; max=n>=m? n:m; Pc=(struct Polynomial*)malloc(sizeof(struct Polynomial)); L=Pc; for(i=0;i<=max;i++){ if(i==max){ Pc->next=NULL; break; } Pc->next=(struct Polynomial*)malloc(sizeof(struct Polynomial)); Pc=Pc->next; } Pc=L; while(Pa!=NULL&&Pb!=NULL){ Pc->data=Pa->data+Pb->data; Pc=Pc->next; Pa=Pa->next; Pb=Pb->next; } if(Pa==NULL){//Pa的长度小于Pb while(Pb!=NULL){ Pc->data=Pb->data; Pc=Pc->next; Pb=Pb->next; } } else if(Pb==NULL){//Pb的长度小于Pa while(Pa!=NULL){ Pc->data=Pa->data; Pc=Pc->next; Pa=Pa->next; } } return L; } int main(){ int i; struct Polynomial *Ha,*Hb,*Hc; printf(\请输入多项式a的最高次系n:\\n\ scanf(\ Ha=Creat_H(n); printf(\请输入多项式b的最高次系m:\\n\ scanf(\ Hb=Creat_H(m); Hc=Calculate(Ha,Hb); printf(\系数: 次数:\\n\ for(i=0;i<=max;i++){//输出相加后的结果 printf(\ if(i==max){ break; } Hc=Hc->next; } system(\ return 0; } 3. 设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到m的人又出列,如此重复,直到所有的人全部出列为止。Josephus问题是:对于任意给定的n,m,s,求出按出列次序得到的n个人员的顺序表。 分析:这题用单循环链表来做,数到m的结点就删除它,再用一个数组依次保存这些被删除的结点里的数据,一直到循环链表为空就行了。 源程序: //1.3.c #include #include struct Josephus{ int data; struct Josephus* next; }; int main(){ struct Josephus* J; struct Josephus* L; struct Josephus* temp; J=L; int i,j; int k=0; int n,m,s; int* p; printf(\请输入n,m,s(中间用空格隔开:)\\n\ scanf(\ p=(int*)malloc(n*sizeof(int)); for(i=1;i<=n;i++){ L->data=i; if(i==n){ L->next=J; break; } L->next=(struct Josephus*)malloc(sizeof(struct Josephus)); L=L->next; }//创建一个Josephus环 if(s==1){ for(i=1;i J=J->next; } } else{ while(J->data!=s-1){ J=J->next; } } while(k!=n){//依次找出数到m的人 for(i=1;i J=J->next; } p[k++]=J->next->data; temp=J->next; J->next=temp->next; free(temp); } for(i=0;i printf(\ } printf(\ free(p); system(\ return 0; } for(i=1;i J=J->next; } p[k++]=J->next->data; temp=J->next; J->next=temp->next; free(temp); } for(i=0;i printf(\ } printf(\ free(p); system(\ return 0; }
正在阅读:
数据结构实验实习题答案07-02
湖北省黄冈市红安县第二中学九年级语文上册 9 我三十万大军胜利南渡长江素材 北师大版05-19
财务报表分析作业2:营运能力分析01-31
2018年内江市初中学业水平考试暨高中阶段学校招生考试试卷(word05-07
元素铬的测定04-03
浙江钱江生物化学股份有限公司 - 图文07-08
大学语文B 3(2)04-18
2015年内蒙古自治区物业管理师《综合能力》考点:市场需求包过题库08-19
九年级上册英语书答案05-03
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 习题
- 答案
- 实验
- 专业咨询机构 - 煤炭行业信息
- (数学4必修)第一章 三角函数(上)C
- 5综合实践活动评价表格
- 七年级下册 英语期末测试卷 满分120分
- 一年级语文教研计划
- 药物经济学说课稿
- DF3610-VQC技术说明书(V1.1 2002.12.19)
- 显微组织含钒超细晶双相钢(科大学报)1 - 图文
- 教学心理学简答论述
- 演绎推理之复台命题推理及错误警示精讲
- 苏教版一年级语文(上册)同步练习题
- 人民医院建设项目可行性研究报告
- 海临港新城“十一五”发展规划纲要
- 浅谈高层建筑机电安装施工常见问题及应对措施
- 六年级下册小提纲
- 南方测绘静态GPS处理软件操作规程
- 高二 麒麟高中2012--2013期末考试第一卷 - 图文
- 四年上册英语教案4-6单元
- 公司物资采购管理制度
- 自动安平水准仪使用