好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

顺序栈的各种基本运算.docx

4页
  • 卖家[上传人]:缘***
  • 文档编号:253616613
  • 上传时间:2022-02-13
  • 文档格式:DOCX
  • 文档大小:68.12KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验内容与要求:顺序栈的各种基本运算编写一个程序,实现顺序栈的各种基本运算,并在基础上完成以下功能1) 初始化顺序栈;2) 判断顺序栈是否为空;3) 依次进栈元素 a,b,c,d,e ;4) 判断顺序栈是否为空;5) 输出栈长度;6) 输出从栈顶到栈底的元素;7) 读出栈顶元素;8) 删除栈顶元素;9) 输出从栈顶到栈底的元素;10) 判断顺序栈是否为空;11) 释放栈代码如下:#include<>#include<>#include<>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define NULL 0#define OVERFLOW -2 typedef int Status;typedef char SElemType;// 栈存储空间的初始分配量// 存储空间分配增量Status visit(SElemType e);#define STACK_INIT_SIZE 100typedef struct { SElemType *base; SElemType *top; int stacksize;#define STACKINCREMENT 10// 存储数据元素的数组// 栈顶指针//当前分配的栈空间大小,以sizeof(SElemType讷单位}SqStack;Status InitStack (SqStack &S) {// 构造一个空栈 S= (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));if (! exit (OVERFLOW);= ;= STACK_INIT_SIZE;return OK;}// InitStackStatus DestroyStack (SqStack &S) {// 销毁栈 Sfree;=NULL;=NULL;=0;return OK;}// DestroyStackStatus StackEmpty (SqStack S) {//判断栈S是否为空if==return TRUE;elsereturn FALSE;}// StackEmptyStatus Push (SqStack &S, SElemType e) {// 插入元素 e 为新的栈顶元素if - >= {// 栈满,追加存储空间= (SElemType *) realloc,+ STACKINCREMENT) * sizeof (SElemType));if (! exit (OVERFLOW); // 存储分配失败= + ;+= STACKINCREMENT;}*++ = e;return OK;}// Pushint StackLength (SqStack S) {// 返回 S 的元素个数,即栈的长度return StackLengthStatus GetTop (SqStack S, SElemType &e) { // 若栈不空,则用 e 返回 S 的栈顶元素 if== return ERROR;*・return OK;}// GetTopStatus Pop (SqStack &S, SElemType &e) {// 若栈不空,则删除 S 的栈顶元素if== return ERROR;e= * ;return OK;}// PopStatus StackTraverse (SqStack S, Status( *visit)(SElemType)) {// 遍历栈while!=visit(*;return OK;}// StackTraverse void main() {// 主函数SElemType e;SqStack S;printf("(1) 初始化顺序栈。

      \n");InitStack(S);printf("(2) 判断顺序栈是否为空 :\n");StackEmpty(S);printf("(3) 依次进栈元素 a,b,c,d,e:\n");Push(S,'a');Push(S,'b');Push(S,'c');Push(S,'d');Push(S,'e');printf("(4) 判断顺序栈是否为空 :\n");StackEmpty(S);printf("(5) 输出栈长度 :%d\n",StackLength(S));printf("(6) 输出从栈顶到栈底的元素 :\n");StackTraverse(S,visit);printf("(7) 读出栈顶元素 :%d\n",GetTop(S,e));printf("(8) 删除栈顶元素 :%d\n",Pop(S,e));printf("(9) 输出从栈顶到栈底的元素 :\n");StackTraverse(S,visit);printf("(10) 判断顺序栈是否为空 \n");StackEmpty(S);printf("(11) 释放栈 ");DestroyStack(S);} 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.