ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:21.52KB ,
资源ID:4564583      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4564583.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构结课实验带答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构结课实验带答案.docx

1、数据结构结课实验带答案线性表一、顺序表建立_新1、定义顺序表存储结构2、初始化顺序表为空(InitList_Sq)3、输入顺序表数据(CreateList_Sq)4、遍历(输出)顺序表数据(TraverseList_Sq)5、销毁顺序表数据(DestroyList_Sq)例如:输入元素个数和数据如下:55 3 8 7 9程序输出为:5,3,8,7,9二、单链表的建立-前插法_新1、定义单链表存储结构2、初始化一个空的单链表L(InitList_L)3、用前插法创建单链表数据(CreateList_F)4、遍历(输出)单链表表数据(TraverseList_L)5、销毁单链表表数据(Destro

2、yList_L)例如:输入单链表结点个数和数据如下:59 7 8 3 5程序输出为:5,3,8,7,9三、单链表的建立-后插法_ 新1、定义单链表存储结构2、初始化一个空的单链表L(InitList_L)3、用后插法创建单链表数据(CreateList_L)4、遍历单链表表数据(TraverseList_L)5、销毁单链表表数据(DestroyList_L)例如:输入元素个数和数据如下:55 3 8 7 9 程序输出为:5,3,8,7,9四、顺序表的插入_新1、定义插入函数(ListInsert_Sq)2、在主函数中遍历输出插入前线性表中的元素3、在主函数中输入插入元素的位置和数据信息4、显示

3、插入后的顺序表数据信息(TraverseList_Sq)例如:输入元素个数和数据如下:55 3 8 7 9插入元素的位置和值为:26程序输出为:5,3,8,7,9 /在输入插入位置和值之前遍历输出的线性表中的数据元素5,6,3,8,7,9模板如下:#include #includeusing namespace std;#define MAXSIZE 100 #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;type

4、def int ElemType;typedef struct ElemType *elem; /指向数据元素的基地址 int length; /线性表的当前长度 SqList;Status InitList_Sq(SqList *L) /构造一个空的顺序表L Status CreateList_Sq(SqList &L,int n) /在此处定义顺序表插入函数ListInsert_Sqvoid TraverseList_Sq(SqList &L) void DestroyList_Sq(SqList &L) int main() SqList L; int i,n,e; InitList_S

5、q(&L); /提示:输入元素个数: cinn; CreateList_Sq(L,n); TraverseList_Sq(L); /遍历输出插入前线性表数据元素 /提示:在顺序表中输入新元素插入的位置和数据: cinie; /在此处编写 ListInsert_Sq函数的调用语句 TraverseList_Sq(L); DestroyList_Sq(L); return 0;五、顺序表的查找按值进行查找_新1、定义按值查找函数(GetElem_Sq)2、在主函数中遍历输出查找前线性表中的元素3、在主函数中输入待查元素4、显示待查找元素的位置例如: 输入顺序表元素个数和数据如下:55 3 8 7

6、9输入的待查找元素为:3程序输出结果有:5,3,8,7,9 /在查找之前遍历输出线性表中的数据元素2 /待查元素在线性表中的位置六、顺序表的查找按序号进行查找_新1、定义按序查找函数(GetElem_Sq)2、在主函数中遍历输出查找之前线性表中的元素2、在主函数中输入待查元素在顺序表中的位序3、显示查找后的数据例如: 输入顺序表元素个数和数据如下:55 3 8 7 9输入查找元素的位序为:2程序输出结果为:5,3,8,7,9 /在调用查找函数之前遍历输出的线性表中的数据元素3 /输出的待查元素的位序七、单链表的插入_新1、定义插入函数(ListInsert_L)2、在主函数中输出插入新结点之前

7、单链表中的结点信息(TraverseList_L)3、在主函数中输入插入结点的位置和数据信息4、显示插入后的单链表数据信息(TraverseList_L)例如:输入单链表结点个数和数据如下:55 3 8 7 9结点插入的位置和值为:26程序输出为:5,3,8,7,9 / 插入新结点之前输出的单链表中的结点信息5,6,3,8,7,9 /插入新结点之后输出的单链表中的结点信息模板如下:#include using namespace std;#define MAXSIZE 100 #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#de

8、fine INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef struct LNode ElemType data; /结点的数据域 struct LNode *next; /结点的指针域 LNode, *LinkList; /LinkList为指向结构体LNode的指针类型Status InitList_L(LinkList &L) /构造一个空的单链表L void CreateList_L(LinkList &L,int n) /在此处定义单链表的插入函数ListInsert_Lvo

9、id TraverseList_L(LinkList L) /依次输出单链表里的每个元素 Status DestroyList_L(LinkList &L) int main() LinkList L; /用LinkList L;替换,与#include LinkList.h配合 int n,i; ElemType e; InitList_L(L); /提示:请输入单链表的结点个数: cinn; CreateList_L(L,n); TraverseList_L(L); /提示:在单链表中输入结点插入的位置和数据: cinie; /在此处调用单链表的插入函数 TraverseList_L(L)

10、; DestroyList_L(L); return 0;八、顺序表删除_新1、定义删除函数(ListDelete_Sq)2、在主函数中遍历输出插入前线性表中的元素3、在主函数中输入被删元素的位置4、显示删除后的线性表元素例如: 输入顺序表元素个数和数据如下:55 3 8 7 9输入被删元素的位置:2程序输出结果为:5,3,8,7,9 /删除元素之前输出的线性表中的数据元素3 /输出的被删除元素5,8,7,9 /输出删除元素之后线性表中的数据元素九、单链表的查找-按序号查找_新1、定义按序查找函数(GetElem_Sq)2、在主函数中输出插入新结点之前单链表中的结点信息(TraverseLis

11、t_L)3、在主函数中输入待查元素在单链表中的位序4、显示查找后的数据例如: 输入单链表结点个数和数据如下:55 3 8 7 9输入查找结点的位序为:2程序输出结果为:5,3,8,7,9 / 插入新结点之前输出的单链表中的结点信息3 /输出该位置上的结点信息十、单链表结点的删除_ 新1、定义删除函数(ListDelete_L2、在主函数中遍历输出删除前单链表中的结点信息3、在主函数中输入被删结点的位置4、显示删除后的单链表的结点信息例如: 输入单链表结点个数和数据如下:55 3 8 7 9 输入被删结点的位置: 2程序输出结果为:5,3,8,7,9 /删除结点之前遍历输出的单链表中的结点信息3

12、 /输出被删除结点的结点信息5,8,7,9 /删除结点之后遍历输出的单链表中的结点信息十一、线性表的合并_新假设利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合 A=AB,例如,设LA=(7 5 3 11 ),LB=( 2 6 3),合并后LA=(7 5 3 11 2 6)1、定义线性表的顺序存储结构2、初始化线性表(InitList_Sq)3、创建线性表(CreateList_Sq)4、定义线性表的合并函数(unionList_Sq),将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中, (在合并函数中,还将包含对函数ListLengtht_Sq、Lis

13、tInsert_Sq、LocateElem_Sq和GetElem_Sq的调用)5、在主函数中输入两个线性表LA,LB,调用合并函数6、遍历合并后的线性表LA,并输出数据(TraverseList_Sq)例如:输入线性表LA的元素个数和数据如下:47 5 3 11 输入有序表LB的元素个数和数据如下:3 2 6 3输出为:7,5,3,11 /输出线性表LA的数据元素2,6,3 /输出线性表LB的数据元素7,5,3,11,2,6 /输出合并后的线性表LA的数据元素十二、有序表的合并_新已知线性表LA 和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元

14、素仍按值非递减有序排列.1、定义有序表合并函数(MergeList_Sq),将两个非递减的有序表LA和LB合并为一个新的有序表LC,且LC中的数据元素仍按值非递减有序排列 (在合并函数中,还将包含对ListLengtht_Sq、ListInsert_Sq和LocateElem_Sq的调用)2、在主函数中输出LA表的数据元素(TraverseList_Sq)3、在主函数中输出LB表的数据元素(TraverseList_Sq)4、在主函数中输入两个非递减的有序表LA,LB,调用合并函数5、遍历合并后的有序表LC,并输出数据(TraverseList_Sq)例如:输入有序表LA的元素个数和数据如下:

15、42 5 8 9输入有序表LB的元素个数和数据如下:63 4 8 10 12 20 输出为:2,5,8,9 /输出LA表的数据元素3,4,8,10,12,20 /输出LB表的数据元素2,3,4,5,8,8,9,10,12,20 /输出合并后的LC表的数据元素十三、有序链表的合并_新已知线性表LA 和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列.1、用后插法创建单链表数据(CreateList_L)2、定义遍历函数输出单链表数据(TraverseList_L)3、定义有序链表合并函数(MergeList_L),将两个非递减

16、的有序链表LA和LB合并为一个新的有序链表LC,且LC中的结点元素仍按值非递减有序排列4、在主函数中输出LA和LB表的结点信息(TraverseList_L)5、在主函数中调用合并函数(MergeList_L)6、遍历合并后的有序链表LC,并输出结点信息(TraverseList_L)例如:输入有序链表LA的结点个数和数据如下:42 5 8 9输入有序链表LB的结点个数和数据如下:63 4 8 10 12 20 输出为:2,5,8,9 /输出LA表的结点信息3,4,8,10,12,20 /输出LB表的结点信息2,3,4,5,8,8,9,10,12,20 /输出合并后的LC表的结点信息栈和队列一

17、、顺序栈的建立1.定义顺序栈的存储结构2.初始化顺序栈为空栈(InitStack_Sq)3.输入要入栈的元素个数n4.向顺序栈中压入n个元素(Push_Sq)5.将顺序栈中的元素从栈顶到栈底依次输出(StackTraverse_Sq)6.销毁顺序栈(DestroyStack_Sq)例如:54 3 5 10 99 10 5 3 4 /遍历输出时最后一个元素后有一个空格二、顺序栈的入栈1.定义顺序栈入栈函数(Push_Sq)2.输入要入栈的元素个数n3.向顺序栈中压入n个元素4.将顺序栈中的元素从栈顶到栈底依次输出(StackTraverse_Sq)5.销毁顺序栈(DestroyStack_Sq)

18、例如:56 2 8 10 99 10 8 2 6 /遍历输出时最后一个元素后有一个空格模板如下:#include #include using namespace std;#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int SElemType;#define MAXSIZE 100typedef struct SElemType *base; SElemType *top; int stacksize;SqStack;Status InitStack_

19、Sq(SqStack &S) void DestroyStack_Sq(SqStack &S) /在此处定义入栈函数Push_Sqvoid StackTraverse_Sq(SqStack S) int main() SqStack S; InitStack_Sq(S); int n; SElemType e; cinn; for(int i=1;ie; /此处调用入栈函数 StackTraverse_Sq(S); DestroyStack_Sq(S); return 0;三、顺序栈的出栈1.定义顺序栈出栈函数(Pop_Sq)2.定义求顺序栈栈长函数(StackLength_Sq)3.输入要入

20、栈的元素个数n4.向顺序栈中压入n个元素5.将顺序栈中的元素从栈顶到栈底依次输出(StackTraverse_Sq)6.销毁顺序栈(DestroyStack_Sq)例如:42 4 6 88 6 4 2 /遍历输出时最后一个元素后有一个空格46 4 2 /遍历输出时最后一个元素后有一个空格83四、顺序栈栈顶元素的获取1.定义获取顺序栈栈顶元素函数(GetTop_Sq)2.输入要入栈的元素个数n3.向顺序栈中压入n个元素4.将顺序栈中的元素从栈顶到栈底依次输出(StackTraverse_Sq)5.获取栈顶元素6.输出栈顶元素7.销毁顺序栈(DestroyStack_Sq)例如:42 4 6 88

21、 6 4 2 /遍历输出时最后一个元素后有一个空格8五、链栈的建立1.定义链栈的结点存储结构2.初始化链栈为空栈(InitStack_Link)3.输入要入栈的元素个数n4.向链栈中压入n个元素(Push_Link)5.从栈顶到栈底遍历链栈数据(StackTraverse_Link)6.销毁链栈(DestroyStack_Link)例如:54 3 5 10 99 10 5 3 4 /遍历输出时最后一个元素后有一个空格六、链栈的入栈1.定义链栈的入栈函数(Push_Link)2.输入要入栈的元素个数n3.向栈中压入n个元素4.将链栈中的元素从栈顶到栈底依次输出(StackTraverse_Lin

22、k)5.销毁链栈(DestroyStack_Link)例如:51 2 3 4 55 4 3 2 1 /遍历输出时最后一个元素后有一个空格模板如下:#include using namespace std;#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int SElemType;#define MAXSIZE 100typedef struct StackNode SElemType data; struct StackNode *next;StackNo

23、de,*LinkStack;Status InitStack_Link(LinkStack &S) void DestroyStack_Link(LinkStack &S) bool StackEmpty_Link(LinkStack S) /此处定义入栈函数Push_Linkvoid StackTraverse_Link(LinkStack S) int main() LinkStack S; int n; SElemType e; InitStack_Link(S); cinn; for(int i=1;ie; /此处调用入栈函数 StackTraverse_Link(S); Destro

24、yStack_Link(S); return 0;七、链栈的出栈1.定义求栈长函数(StackLength_Link)2.定义出栈函数(Pop_Link)3.输入要入栈的元素个数n4.向栈中压入n个元素(Push_Link)5.将栈中的元素从栈顶到栈底依次输出(StackTraverse_Link)6.输出栈长7.执行出栈操作8.将栈中的元素从栈顶到栈底依次输出9.输出出栈元素10.输出栈长11.销毁链栈(DestroyStack_Link)例如:51 2 3 4 55 4 3 2 1 /遍历输出时最后一个元素后有一个空格54 3 2 1 /遍历输出时最后一个元素后有一个空格54八、链栈栈顶元

25、素的获取1.定义获取栈顶元素函数(GetTop_Link)2.输入要入栈的元素个数n3.向栈中压入n个元素(Push_Link)4.将栈中的元素从栈顶到栈底依次输出(StackTraverse_Link)5.获取栈顶元素6.输出栈顶元素7.销毁链栈(DestroyStack_Link)例如:42 4 6 88 6 4 2 /遍历输出时最后一个元素后有一个空格8九、循环队列的建立1.定义循环队列的存储结构2.初始化循环队列为空队列(InitQueue_Sq)3.输入要入队的元素个数n4.向循环队列中输入n个元素(EnQueue_Sq)5.将循环队列中的元素从队头至队尾依次输出(StackQueu

26、e_Sq)6.销毁循环队列(DestroyQueue_Sq)例如:51 2 3 4 51 2 3 4 5 /遍历输出时最后一个元素后有一个空格十、循环队列的入队1.定义循环队列入队函数(EnQueue_Sq)2.输入要入队的元素个数n3.向循环队列中输入n个元素4.将循环队列中的元素从队头至队尾依次输出(StackQueue_Sq)5.销毁循环队列(DestroyQueue_Sq)例如:56 2 8 10 96 2 8 10 9 /遍历输出时最后一个元素后有一个空格模板如下:#include #include using namespace std;#define OK 1#define ER

27、ROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int QElemType;#define MAXSIZE 100typedef struct QElemType *base; int front; int rear;SqQueue;Status InitQueue_Sq(SqQueue &Q) void DestroyQueue_Sq(SqQueue &Q) /此处定义入队函数EnQueue_Sqvoid QueueTraverse_Sq(SqQueue Q) int main() SqQueue

28、 Q; QElemType e; InitQueue_Sq(Q); int n; cinn; for(int i=1;ie; /此处调用入队函数 QueueTraverse_Sq(Q); DestroyQueue_Sq(Q); return 0;十一、循环队列的出队1.定义求循环队列队长函数(QueueLength_Sq)2.定义循环队列的出队函数(DeQueue_Sq)3.输入要入队的元素个数n4.向循环队列中输入n个元素5.将循环队列中的元素从队头至队尾依次输出(StackQueue_Sq)6.输出队长7.执行出队操作8.将循环队列中的元素从队头至队尾依次输出9.输出出队元素10.输出队长11.销毁循环队列(DestroyQueue_Sq)例如:51 2 3 4 51 2 3 4 5 /遍历输出时最后一个元素后有一个空格52 3 4 5 /遍历输出时最后一个元素后有一个空格14十二、循环队列队头元素的获取1.定义获取循环队列队头元素函数(GetHead_Sq)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1