链栈顺序栈实验报告

链栈顺序栈实验报告

ID:69496449

大小:39.00 KB

页数:16页

时间:2021-11-05

链栈顺序栈实验报告_第1页
链栈顺序栈实验报告_第2页
链栈顺序栈实验报告_第3页
链栈顺序栈实验报告_第4页
链栈顺序栈实验报告_第5页
链栈顺序栈实验报告_第6页
链栈顺序栈实验报告_第7页
链栈顺序栈实验报告_第8页
链栈顺序栈实验报告_第9页
链栈顺序栈实验报告_第10页
资源描述:

《链栈顺序栈实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、..第五次实验报告——顺序栈、链栈的插入和删除一需求分析1、在演示程序中,出现的元素以数字出现定义为int型,2、演示程序在计算机终端上,用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在终端上3、顺序栈的程序执行的命令包括如下:〔1〕定义构造体〔2〕顺序栈的初始化及创立〔3〕元素的插入〔4〕元素的删除〔5〕顺序栈的打印结果3、链栈的程序执行的命令包括如下:〔1〕定义构造体〔2〕链栈的初始化及创立〔3〕元素的插入〔4〕元素的删除〔5〕链栈的打印结果二概要设计..word.zl...1

2、、顺序栈可能需要用到有序表的抽象数据类型定义:ADTList{数据对象:D={ai

3、ai∈ElemL,i=1,2,...,n,n≥0}数据关系:R1={

4、ai-1,ai∈D,i=2,...,n}根本操作:InitStack(SqStack&S)操作结果:构造一个空栈Push(L,e)操作结果:插入元素e为新的栈顶元素StatusPop(SqStack&S)操作结果:删除栈顶元素}ADTList;2、链栈可能需要用到有序表的抽象数据类型定义:ADTList{数据对象:D={ai

5、ai∈El

6、emL,i=1,2,...,n,n≥0}数据关系:R1={

7、ai-1,ai∈D,i=2,...,n}根本操作:LinkStack(SqStack&S)操作结果:构造一个空栈StatusPush(L,e)操作结果:插入元素e为新的栈顶元素StatusPop(SqStack&S)..word.zl...操作结果:删除栈顶元素}ADTList;3、顺序栈程序包含的主要模块:(1)已给定的函数库:〔2〕顺序栈构造体:〔3〕顺序栈初始化及创立:(4)元素插入(5)元素删除〔6〕主程序:4、链栈程序

8、包含的主要模块:(1)已给定的函数库:〔2〕链栈构造体:〔3〕链栈初始化及创立:(4)元素插入(5)元素删除(6)主程序:三详细设计线性栈:构造体..word.zl...#defineSTACK_INIT_SIZE100//存储空间初始分配量#defineSTACKINCREMENT10//存储空间分配增量typedefstruct{int*base;//在构造栈之前和销毁之后,base的值为NULLint*top;//栈顶指针intstacksize;//当前已分配的存储空间,以元素为单位}SqStac

9、k#include"Base.h"主函数#include"construction.h"#include"stack_operation.c"intmain(){SqStackS;intchoice,e;S=InitStack();S=Input_Sq(S);printf("请选择执行的操作,输入1执行入栈操作,输入2执行出栈操作choice=");scanf("%d",&choice);switch(choice){..word.zl...case1:{printf("请输入插入元素的值e=");sca

10、nf("%d",&e);S=Push(S,e);printf("执行入栈操作后的线性栈为");Print_Stack(S);};break;case2:{S=Pop(S);printf("执行出栈操作后的线性栈为");Print_Stack(S);};break;default:printf("您输入的值不合法");}}线性栈的创立SqStackInitStack()//线性栈的创立{SqStackS;S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));//分

11、配存储空间..word.zl...if(!S.base)exit(OVERFLOW);//存储分配失败S.top=S.base;S.stacksize=STACK_INIT_SIZE;returnS;}输入函数SqStackInput_Sq(SqStackS)//输入函数{intn,i;printf("请输入元素个数n=");scanf("%d",&n);printf("请输入%d个元素",n);for(i=0;i

12、函数..word.zl...SqStackPush(SqStackS,inte)//进栈函数{if(S.top-S.base>=S.stacksize)//判断栈是否为满,追加存储空间{S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));if(!S.base)exit(OVERFLOW);//存储分配失败S.top=S.base+S.sta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。