顺序栈 谁借莪1个温暖的怀抱¢ 2022-06-18 01:56 141阅读 0赞 顺序栈(C++) // //Description:顺序栈 // #include <iostream> #include <malloc.h> using namespace std; #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef int Status; typedef int SElemType; //顺序栈的定义 typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; //---------------以下为基本操作 //构造一个栈 Status InitStack(SqStack &S) { S.base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if (!S.base) { cout << "存储空间分配失败!" << endl; return 0; } S.top = S.base; S.stacksize = STACK_INIT_SIZE; return 1; } //初始化一个栈 Status Input(SqStack &S, int n) { int i; if (n>0) { cout << "请输入第" << 1 << "个元素的值" << endl; cin >> *S.base; S.top++; for (i = 2; i <= n; i++) { cout << "请输入第" << i << "个元素的值" << endl; cin >> *S.top; S.top++; } return 1; } else { cout << "输入数据不合法!" << endl; return 0; } } //查看栈顶元素 Status GetTop(SqStack S, SElemType &e) { if (S.top == S.base) { cout << "目前为空栈,无栈顶元素!" << endl; return 0; } e = *(S.top - 1); cout << "当前栈顶元素为" << e << endl; return 1; } //向栈顶插入一个元素 Status Push(SqStack &S, SElemType e) { if (S.top - S.base >= S.stacksize) { S.base = (SElemType *)realloc(S.base, (S.stacksize + STACKINCREMENT)*sizeof(SElemType)); if (!S.base) { cout << "执行插入操作分配存储空间时失败!" << endl; return 0; } S.top = S.base + S.stacksize; S.stacksize += STACKINCREMENT; } *S.top++ = e; return 1; } //删除栈顶元素 Status Pop(SqStack &S, SElemType &e) { if (S.top == S.base) { cout << "目前为空栈,无法执行删除栈顶元素的操作!" << endl; return 0; } e = *--S.top; return 1; } //--------------主函数 void main() { cout << "\n--------------------顺序栈-----------------" << endl; SqStack stc; InitStack(stc); int num; cout << "请输入初始时欲在栈中放入的元素的个数" << endl; cin >> num; cout << endl; Input(stc, num); SElemType value; cout << endl; GetTop(stc, value); cout << "请输入欲插入元素的值" << endl; cin >> value; cout << endl; Push(stc, value); cout << "插入的元素的值为" << value << endl; GetTop(stc, value); cout << endl; Pop(stc, value); cout << "刚刚删除的栈顶元素的值为" << value << endl; GetTop(stc, value); }
相关 顺序栈 \define OK 1 \define ERROR 0 \define TRUE 1 \define FALSE 0 \define INFEASIBLE - ╰+攻爆jí腚メ/ 2022年08月25日 05:27/ 0 赞/ 148 阅读
相关 顺序栈 2016年7月23日12:43:45 顺序栈的基本运算 include <stdio.h> define STICKSIZE 100 冷不防/ 2022年07月16日 13:29/ 0 赞/ 156 阅读
相关 顺序栈 转自http://blog.sina.com.cn/s/blog\_1513d729e0102wem6.html 顺序栈的实现(利用数组实现 ╰+哭是因爲堅強的太久メ/ 2022年07月15日 16:07/ 0 赞/ 162 阅读
相关 顺序栈 对全局变量有些依赖,要改进 include <iostream> using namespace std; typedef int elemType; 以你之姓@/ 2022年07月14日 07:23/ 0 赞/ 191 阅读
相关 顺序栈 顺序栈(C++) // //Description:顺序栈 // include <iostream> include <malloc 谁借莪1个温暖的怀抱¢/ 2022年06月18日 01:56/ 0 赞/ 142 阅读
相关 顺序栈 include<stdio.h> define maxsize 6 /顺序栈的容量/ typedef struct { int 「爱情、让人受尽委屈。」/ 2022年06月16日 13:15/ 0 赞/ 159 阅读
相关 顺序栈 include<stdio.h> define MAXSIZE 100 typedef struct{ int data[MAXSIZE]; 缺乏、安全感/ 2022年06月16日 03:21/ 0 赞/ 159 阅读
相关 顺序栈 //seqstack.h include<string.h> include<malloc.h> include<limits.h> incl 傷城~/ 2022年06月03日 20:39/ 0 赞/ 155 阅读
相关 顺序栈 栈: 限定仅在表尾进行插入和删除操作的线性表。因此,对于栈来说,表尾有其特殊含义,称为栈顶,相应地,表头称为栈底。不含元素的空表称为空栈。 系统管理员/ 2022年04月22日 03:06/ 0 赞/ 181 阅读
相关 顺序栈 / @author huihut @E-mail:huihut@outlook.com @version 创建时间:2016年9月9日 蔚落/ 2021年12月18日 05:07/ 0 赞/ 253 阅读
还没有评论,来说两句吧...