




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子科技大学上机实验报告科目名称: 软件技术基础 任课教师: 庞晓凤 学生姓名: 王德斌 学生学号: 2013020910030 软件技术基础上机实验报告实验一:顺序表和单链表基本操作上机实验 一、实验目的:理解线性结构的基本概念,掌握两种基本的存储结构:顺序存储结构(顺序表)和链式存储结构(单链表);用C语言实现在两种存储结构上的对应操作(包括创建、删除插入元素、遍历等),巩固强化C程序设计的基本方法和能力。 二、实验内容: 1、顺序表的创建、元素删除、遍历等操作: 有序的一组整数1,2,3,4,6,设计顺序表并实现以下操作: A.初始化一个空的顺序表; B.从键盘依次输入上述数据添加到顺序
2、表中; C.删除表中的第四个数据元素;D.显示B、C操作后顺序表中的内容。程序:#include#define true 1#define false 0#define Maxnum 10typedef structint dataMaxnum;int num;listtype;int delete(listtype *l,int x)int i;if(xl-num-1)printf(未返回顺序表);return(false);for(i=x+1;inum)+1);i+)l-datai-2=l-datai-1;l-num-;return(true);int display(listtype *
3、l)int j;printf(顺序表如下n);if(l-num=0)printf(空表);elseif(l-num=1)printf(%d,l-data0);elsefor(j=0;jnum-1;j+)printf(%dn,l-dataj);printf(%dn,l-dataj);return(true);main()listtype list;int i,x;printf(请输入表长);scanf(%d,&list.num);printf(请输入数据);for (i=0;ilist.num;i+)scanf(%d,&list.datai);printf(请输入要删除的数据位置);scanf(
4、%d,&x);delete(&list,x);display(&list);实验结果:2、现有有序的一组整数1,2,2,3,4,6,6,设计单链表,分别编写函数实现以下操作:A.初始化一个空链表。B.依次添加上述一组数据(结点),生成该链表。C.统计该链表的长度。D.在表中查找数据为3和7的结点,并返回其位置(若找不到返回 -1)。E.删除中间重复结点,使链表变为 1-2-3-4-6。F.显示经B,E操作后,链表的内容。程序:#include#include#includestruct nodeint val;int w;struct node *next;int a7=1,2,2,3,4,6
5、,6;node *h=(node *)malloc(sizeof(node);node *t;node *x;void print()printf(此单链表为:);for(x=h;x-next!=NULL;x=x-next)printf(%d ,x-next-val);void print_len()int len=0;for(x=h;x-next!=NULL;x=x-next) len+; printf(n链表长度为:%dn,len);void sec(int i)int ans1=-1;for(x=h;x-next!=NULL;x=x-next) if(x-next-val=i) ans1
6、=x-next-w; break; printf(%dn,ans1);void d()for(x=h;x-next!=NULL;x=x-next) if(x-next-val=x-next-next-val) x-next=x-next-next; int main()printf(题中单链表如下n); t=h; int ans1=-1;int len=0; for(int i=0;inext=p; t-next-val=ai; t-next-w=i; t=t-next; t-next=NULL; print(); print_len(); printf(数据为3的结点位置为:); sec(3
7、); printf(数据为7的结点位置为:); sec(7); d(); print(); return 0; 实验结果:实验二:基本查找排序操作上机实验 一、实验目的:掌握两种基本的查找算法(顺序查找、二分查找)和三种基本排序算法(简单插入排序、简单冒泡排序、简单选择排序)的原理及C语言实现。 二、实验内容:现有一顺序表,表中元素分别为51,38,79,22,91,105,33,52,16,112,分别编写函数实现以下操作:A、 采用简单插入排序法实现对顺序表的排序,显示每一趟的排序结果; B、采用简单冒泡排序法实现对顺序表的排序,显示每一趟的排序结果;C、采用简单选择排序法实现对顺序表的排
8、序,显示每一趟的排序结果;D、对上述排序后的顺序表采用顺序查找方法,查找关键字为52和关键字为36的元素,分别显示查找结果; E、对上述排序后的顺序表采用二分查找方法,查找关键字为22的元素,显示查找结果。程序:#include #include #define true 1#define false 0#define Maxnum 10 /设定最大表长#define SWAP(x,y) int t; t = x; x = y; y = t;typedef struct int dataMaxnum; int num; listtype;void selsort(listtype *l);vo
9、id insort(listtype *l) ;void bubsort(listtype *l);int seq_search(listtype *l);int bin_search(listtype *l);main() void display(listtype *l) ; listtype list; int i,j,x; printf(请输入表长); scanf(%d,&list.num); /设定表长 printf(请输入各数据n); for(i=0;inum=0) printf(空表); else if (l-num=1) printf(%d,l-data0); else for
10、(j=0;jnum-1;j+) printf(%dn,l-dataj); printf(%dn,l-dataj); return(false);void selsort(listtype *l) int i,j,small,k; for (i=0;inum-1);i+) small=i; for(j=i+1;jnum;j+) if(l-datajdatasmall) small=j; if(small!=i) SWAP(l-datasmall,l-datai) printf(第 %d 次排序:, i+1); for(k = 0; k num; k+) printf(%d , l-datak);
11、 printf(n); printf(n); void insort(listtype *l) int i, j, k, tmp; for(j = 0; j num-1); j+) tmp =l-dataj+1; i = j ; while(i-1&tmp datai) l-datai+1 =l-datai; i-; l-datai+1 = tmp; printf(第 %d 次排序:, j); for(k = 0; k num; k+) printf(%d ,l-datak); printf(n); void bubsort(listtype *l) int i, j, k, flag = 1
12、; for(i = 0; i num & flag = 1; i+) flag = 0; for(j = 0; j num-i-1; j+) if(l-dataj+1 dataj) SWAP(l-dataj+1, l-dataj); flag = 1; printf(第 %d 次排序:, i+1); for(k = 0; k num; k+) printf(%d , l-datak); printf(n); int seq_search(listtype *l) int i,key,j; j=0; printf(请输入要查找数据的关键字。n); scanf(%d,&key); for (i=0
13、;inum;i+) if(l-datai=key) printf(searching successn); printf(所查找数据位置为%dn,i+1); else j+; if(j=l-num) printf(未找到n);int bin_search(listtype *l) int low,high,mid,key; low=0; high=(l-num)-1; printf(请输入要查找的数据的值。n); scanf(%d,&key); while(lowdatamid=key) printf(searching successn); printf(所查找的数据位置是%dn,mid); return(mid); else if(l-datamid)key) low=mid+1; else high=mid-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能弱电系统工程进度优化及管理措施
- 招聘主管述职报告
- 网约区域复习试题及答案
- 新能源项目施工的风险管理与保障措施
- 铁路新职员工安全培训
- 2025学校安全生产月活动总结(11篇)
- 线上在线课堂销售合同
- 花香茶苗木采购协议
- 敦煌市基本公共文化服务质量提升研究
- 项目投资合作协议书模版
- 大模型原理与技术-课件 chap6 大模型微调
- 政府采购评审专家考试题库(完整版)
- 公路工程中浆砌块石挡土墙施工方案
- 零星工程维修 投标方案(技术方案)
- 支气管哮喘治疗
- 钢棚搭建安全合同(2篇)
- 《公路桥梁挂篮设计与施工技术指南》
- 浙江省【高等职业技术教育招生考试】-商业类(电子商务)-职业技能理论知识(一)(答案版)
- 人教版历史2024年第二学期期末考试七年级历史试卷(含答案)
- 中国国新基金管理有限公司招聘笔试题库2024
- DB34∕T 2839-2017 模塑聚苯板薄抹灰外墙外保温系统
评论
0/150
提交评论