下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构上机考试试题(C++语言版)数据结构上机考试试题(C++语言版)数据结构上机考试试题(C++语言版)资料仅供参考文件编号:2022年4月数据结构上机考试试题(C++语言版)版本号:A修改号:1页次:1.0审核:批准:发布日期:数据结构上机考试试题(C++语言版)考试要求:本次考试共列考核试题4大题,考生可以在所列4个考核试题中任选3个小题(即可能只属于2个大题),作为上机考核试题。考核原则:所选题目在上机编程调试通过后即为考核通过。监考教师依据学生编程及调试通过与否情况给予考核成绩。考核成绩评分标准:所选3个题目全部编写出程序并调试通过:优所选3个题目全部编写出程序,但只有2个上机调试通过:良所选3个题目全部编写出程序,但只有1个上机调试通过:及格所选3个题目全部编写出程序但都没有上机调试通过,或没有编写出全部程序:不及格。考核时间:2小时。考核试题:1、建立一个顺序方式存储的线性表,向表中输入若干元素后进行以下操作:(1)向线性表的表头、表尾或合适位置插入元素(2)对线性表按升序或降序输出2、建立一个动态链接方式存储的线性表,向表中输入若干元素后进行以下操作:(1)从单链表中查找指定元素(2)返回单链表中指定序号的结点值3、建立一个动态链接结构存储的二叉树,向这棵二叉树进行以下操作:(1)按任中序遍历次序输出二叉树中的所有结点(2)求二叉树的叶子数4、编写一个对整型数组A[n+1]中的A[1]至A[n]元素进行选择排序的算法,使得首先从待排序区间中选择出一个最大值并同最后一个元素交换,再从待排序区间中选择出一个最小值并同最第一个元素交换,反复进行直到待排序区间中元素的个数不超过1为止。#include<>#include<>#include""//初始化线性表voidInitList(LinearList&L,intms){ =newElemType[ms]; if(!{ cerr<<"Memoryallocationfailure!"<<endl; exit(1); }=0; =ms;}//清空线性表voidClearList(LinearList&L){=0;}//求线性表长度intListSize(LinearList&L){ return;}//检查线性表是否为空boolListEmpty(LinearList&L){ return==0;}//检查线性表是否为满boolListFull(LinearList&L){ return==;}//遍历线性表voidTraverList(LinearList&L){ for(inti=0;i<;i++)cout<<[i]<<''; cout<<endl;}//从线性表中查找元素boolFindList(LinearList&L,ElemType&item){ for(inti=0;i<;i++) if[i]==item){ item=[i]; returntrue; } returnfalse;}//更新线性表中的给定元素boolUpdateList(LinearList&L,constElemType&item){ for(inti=0;i<;i++) if[i]==item){ [i]=item; returntrue; } returnfalse;}//向线性表的表头、表尾或合适位置插入元素boolInsertList(LinearList&L,constElemType&item,intmark){ if(ListFull(L))returnfalse; if(mark>0){ for(inti=;i>=0;i--) [i+1]=[i]; [0]=item; }elseif(mark<0)[]=item; else{for(inti=0;i<;i++) if(item<[i])break; for(intj=;j>=i;j--) [j+1]=[j]; [i]=item; } ++; returntrue;}//从线性表中删除表头、表尾或等于给定值的元素boolDeleteList(LinearList&L,ElemType&item,intmark){ if(ListEmpty(L))returnfalse; if(mark>0){ item=[0]; for(inti=1;i<;i++) [i-1]=[i]; }elseif(mark<0)item=[]; else{for(inti=0;i<;i++) if[i]==item)break; if(i>= returnfalse; elseitem=[i]; for(intj=i+1;j<;j++) [j-1]=[j]; } ; returntrue;}//对线性表按升序或降序输出voidOrderOutputList(LinearList&L,intmark){ int*b=newint[]; inti,k; for(i=0;i<;i++) b[i]=i; for(i=1;i<;i++){ k=i-1; for(intj=i;j<;j++){ if(mark==1&&[b[j]]<[b[k]])k=j; if(mark!=1&&[b[k]]<[b[j]])k=j; } if(k!=i-1){intx=b[i-1];b[i-1]=b[k];b[k]=x;} } for(i=0;i<;i++) cout<<[b[i]]<<''; cout<<endl;}#include<>constintML=10;#include""//主文件voidmain(){ LinearLista; InitList(a,ML); inti; ElemTypex;//依次向线性表a表尾插入5个整数元素 cout<<"从键盘输入5个整数:"; for(i=0;i<5;i++){ cin>>x; InsertList(a,x,-1); }//依次向线性表a表头插入2个整数元素 cout<<"从键盘输入2个整数:"; cin>>x; InsertList(a,x,1); cin>>x; InsertList(a,x,1);//按不同次序遍历输出线性表a TraverList(a); OrderOutputList(a,1); OrderOutputList(a,0);//把线性表a中的所有元素依次有序插入到一个新线性表b中"LinearListb; InitList(b,ML); for(i=0;i<;i++) InsertList(b,[i],0);//输出线性表b TraverList(b);//从线性表a中分别删除表头、表尾、给定值元素 if(DeleteList(a,x,1))cout<<"Deletesuccess!"<<endl; elsecout<<"Deletefail!"<<endl; if(DeleteList(a,x,-1))cout<<"Deletesuccess!"<<endl; else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 35403.3-2018国家物品编码与基础信息通 用规范 第3部分:生产资料》
- 《DAT 25-2000档案修裱技术规范》(2026年)合规红线与避坑实操手册
- 村官公共基础题库及分析
- 园林工程公司项目管理办法
- 洗煤厂财务制度
- 算力基础设施安全防护搭建方案
- 个人理财试卷及解析
- 视频剪辑师AE特效题目及详解
- 司法考试客观题刑法题库及答案
- 历史展望题库及详解
- 全套教学课件《工程伦理学》
- GB/T 1231-2024钢结构用高强度大六角头螺栓连接副
- DG-TJ 08-2242-2023 民用建筑外窗应用技术标准
- 生活污水清运协议范本
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 《过华清宫绝句(其一)》-【中职专用】高一语文(高教版2023基础模块下册)
- 《直丝弓矫治技术》课件
- 老年跌倒风险评估与预防策略
- 苗木采购投标方案(技术方案)(技术方案)
- 拨叉的课程设计说明书
- 液压升降平台安装施工方案
评论
0/150
提交评论