欢迎来到天天文库
浏览记录
ID:18887462
大小:2.16 MB
页数:85页
时间:2018-09-26
《南昌大学数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告实验课程:数据结构C++语言的描述学生姓名:学号:专业班级:2012年6月1日84目录实验一顺序表……………………………………………………2实验二非循环单链表……………………………………………19实验三链队………………………………………………………41实验四排序………………………………………………………5484南昌大学实验报告---(1)顺序表学生姓名:学号:专业班级:实验类型:□验证□综合■设计□创新实验日期:实验成绩:一.实验目的掌握顺序表的逻辑结构、存储结构、操作,并通过C++编程实现。二.问题描述线性表是由n(n≥0)个元素(结点)a1,a2,…,an组成的有限序列,其中a
2、i中的i称为该数据元素的位置(序号),n为数据元素的个数(表的长度),当n等于0时称为空表。按逻辑次序依次把数据元素存放在一组连续的地址存储单元里的线性表称为顺序表。在这里,我们通过C++中的动态数组来实现顺序表的存放,并通过建立顺序表类实现它的各种操作。三.实验要求实现顺序表的三个框架操作:随机生成,用已有顺序表初始化另一个顺序表,输入顺序表。以及十个基本操作:在第i个元素之前插入元素,判断是否为空,求元素个数,取第i个元素,查找第一个与e满足compare()关系的元素,返回元素的前驱,返回后继,删除第i个元素,把一个顺序表赋值给另一个顺序表,置空顺序表。四.实验环境PC微机,Wind
3、ows操作系统,VisualStudio2010。五.实验代码顺序表基类代码:#ifndefMYHEAD_H#defineMYHEAD_H#include"D:MYPROGRAM数据结构myhead.h"#endif#defineLIST_MAX_SIZE100#defineLISTINCREMENT10/////////////////////////////////////////////////////////////84//声明templateclassSqList{public:voidsuiji(intn);voidshuruSqLis
4、t(inte);intbin_Search(ElemTypekey);voidclear();StatusdeleteElem(inti,ElemType&e);StatusgetElem(inti,ElemType&e);intgetLength();intgetListSize();Statusinsert(inti,ElemTypee);boolisEmpty();intlocateElem(int&i,ElemTypee,Status(*compare)(ElemType,ElemType));StatusnextElem(ElemTypee,ElemType&next_e);Sq
5、Listoperator=(SqListrightL);StatuspriorElem(ElemTypee,ElemType&prior_e);////////////自动调用构造函数析构函数的声明SqList();virtual~SqList();SqList(constSqList&otherL);intn;intm;inti;intprior_e;intnext_e;inte;ElemType*elem;protected:intlistSize;};//操作的实现templatevoid
6、SqList::suiji(intn){inti=1;for(i=1;i<=n;i++)elem[i-1]=rand()%100;}84templatevoidSqList::shuruSqList(inte){for(inti=1;i<=n;i++){cin>>e;elem[i-1]=e;}}templatevoidSqList::clear(){n=0;}templateStatusSqList::d
7、eleteElem(inti,ElemType&e){if(i<1
8、
9、i>n)returnERROR;e=elem[i-1];for(intj=i+1;j<=n;++j)elem[j-2]=elem[j-1];--n;returnOK;}templateStatusSqList::getElem(inti,ElemType&e){if(i<1
10、
11、i>n)return
此文档下载收益归作者所有