已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验编号:2 四川师大数据结构实验报告 2016 年 9 月 30 日实验二 线性表及其实现_一实验目的及要求(1) 熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现,以线性表的各种操作(建立、插入、删除等)的实现为实验重点。(2) 通过本次实验帮助学生加深对顺序表、链表的理解,并加以应用。(3) 掌握循环链表和双链表的定义和构造方法。二实验内容(1) 编程实现线性表两种存储结构(顺序存储、链式存储)中的基本操作的实现(线性表的创建、插入、删除、查找(顺序查找、折半查找) 、排序等) ,并设计一个菜单调用线性表的基本操作。(2) 建立一个按元素递增有序的单链表 L,并编写程序实现:a) 将x插入其中后仍保持L的有序性;b) 将数据值介于min和max之间的结点删除,并保持L的有序性;c) 将单链表L 逆置并输出;(3) 编程实现将两个按元素递增有序的单链表合并为一个新的按元素递增的单链表。注:(1)为必做题, (2)(3)选做。三主要仪器设备及软件(1) PC 机(2) Dev C+ ,Visual C+, VS2010 等四实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1) 编程实现线性表两种存储结构(顺序存储、链式存储)中的基本操作的实现(线性表的创建、插入、删除、查找(顺序查找、折半查找) 、排序等) ,并设计一个菜单调用线性表的基本操作。A.顺序储存: 代码部分:Main.cpp:#include“Sqlist.h“int main()Sqlist L;int e = 0, number=0,locat =0,elect=0;int ret;/存放返回值printf(“请先创建一个含有 10 个整型元素的顺序表!n“);Initlist_Sq(L);do elect=Print_Sq(L);switch (elect)case 0:break;case 1:/插入printf(“请输入你想添加的位置和数字(用空格隔开):“);scanf_s(“%d%d“,ListInsert_Sq(L, number, locat);break;case 2:/删除printf(“请输入你想删除数字的位置:“);scanf_s(“%d“, listDelete_Sq(L, locat, e);printf(“the delete number is %dn“, e);break;case 3:/顺序查找printf(“请输入你想查找的数字:“);scanf_s(“%d“, ret=listFine1_Sq(L, locat, number);if(ret)printf(“%d 在表中的位置是%dn“, number, locat);break;case 4:/折半查找printf(“请输入你想查找的数字:“);scanf_s(“%d“, ret=listFine2_Sq(L, locat, number);if(ret)printf(“%d 在表中的位置是%dn“, number, locat);break;case 5:/升序Ascending_Sq(L);break;case 6:/降序Decending_Sq(L);break;default:printf(“输入错误!n“); while (elect != 0);system(“pause“);return 0;Sqlist.cpp:#include“Sqlist.h“/输出表格int Print_Sq(Sqlist printf(“现有线性表:n“);for (; i L.length + 1)return ERROR;if (L.length = L.listsize)newelem = (ElemType *)realloc(L.elem, (L.listsize + LISTINCREMENT) * sizeof(ElemType);if (!newelem) exit(OVERFLOW);L.elem = newelem;L.listsize += LISTINCREMENT;q = for (p = p = q; -p)*(p + 1) = *p;*q = e;+L.length;return OK;/删除第 i 个位置的元素并返回 eStatus listDelete_Sq(Sqlist if (iL.length)return ERROR;p = e = *p;for (q = i - 1; q L.elemmid)low = mid+1;else if (e L.elemj)min = j;temp = L.elemi;L.elemi = L.elemmin;L.elemmin = temp;min = i + 1;return OK;/降序Status Decending_Sq(Sqlist L)int i, j, max = 0, temp;for (i = 0; i L.length - 1; i+)for (j = i; j L.length; j+)if (L.elemmax L.elemj)max = j;temp = L.elemi;L.elemi = L.elemmax;L.elemmax = temp;max = i + 1;return OK;Sqlist.h:#include“stdio.h“#include“stdlib.h“#define LIST_INIT_SIZE 10#define LISTINCREMENT 2#define OK 1#define OVERFLOW 0#define ERROR 0typedef int Status;typedef int ElemType;typedef struct ElemType *elem;int length;int listsize;Sqlist;int Print_Sq(Sqlist /输出顺序表;Status Initlist_Sq(Sqlist /创建链表;Status ListInsert_Sq(Sqlist /在 i 处插入 e;Status listDelete_Sq(Sqlist /删除 i 位置上的元素返回到 e;Status listFine1_Sq(Sqlist L, int /顺序查找Status listFine2_Sq(Sqlist L, int /折半查找S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胡歌短视频运营方案
- 2026年生产设备维护成本减少项目分析方案
- 护理课件设计动画:增强教学趣味性
- 护理护理工作压力管理与应对
- 泌尿外科患者的整体护理与质量管理
- 护理法律与医疗纠纷的和解协议履行
- 2026年山东青岛市崂山区自主招生化学试卷试题(含答案详解)
- 大学植物学光合作用试卷及答案
- 帮亲人贷款协议书
- 伟创力考试题库及答案
- 4.2+实现中华民族伟大复兴的中国梦+课件高中政治统编版必修一中国特色社会主义
- 幼儿园班本课程培训
- 2024年四川嘉州金石能源有限公司招聘笔试参考题库附带答案详解
- 825合金20钢双金属复合管焊接工艺
- (正式版)JBT 106-2024 阀门的标志和涂装
- 钢结构焊接技术的基础知识
- 超声消融术在肿瘤治疗中的应用
- 公寓保洁服务方案
- 2023年各省高中数学竞赛预赛试题汇编
- 第一二章 野生植物资源开发(总论)
- 2016SSZN-MJG 装配式建筑系列标准应用实施指南(木结构建筑)
评论
0/150
提交评论