c++实现栈建立,插入,删除
来源:互联网 发布:c语言字符串指针传递 编辑:程序博客网 时间:2024/06/08 14:03
# include<iostream>using namespace std;#define STACK_INIT_SIZE 10#define STACKINCREMENT 5typedef int SElemType;//定义栈结构typedef struct{SElemType *base;SElemType *top;int stacksize;}SqStack;//建立栈void InitStack(SqStack &S){S.base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if (!S.base){cout << endl << "Allocate space failure !" << endl;}S.top = S.base;S.stacksize = STACK_INIT_SIZE;*S.top++ = 5;//先将元素赋给*S.stop, 然后指针S.top++*S.top++ = 8; *S.top++ = 12;*S.top++ = 18;*S.top++ = 30;*S.top++ = 37;*S.top++ = 45;*S.top++ = 78;}//返回栈顶元素void GetTop(SqStack &S){SElemType e;if (S.top == S.base) cout << "栈为空!" << endl;e = *(S.top - 1);cout << "Top元素为:" << e << endl;}//插入元素evoid 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;S.top = S.base + S.stacksize;//重新初始化S.top的位置S.stacksize += STACKINCREMENT;//栈长度加上增加的长度}*S.top++ = e;cout << endl << "插入成功!" << endl;}//打印栈void PrintStack(SqStack &S){SElemType *p;cout << endl << endl << "栈元素";cout << endl << "------";cout << endl << "The old SqStack is (base to top) : " << endl;for (p = S.base; p != S.top; p++)//output the old SqStack{cout << *p << " 地址为:" << p << endl;}cout << S.base << endl;}//删除顶元素void Pop(SqStack &S){if (S.top == S.base) cout << "栈为空,删除失败!" << endl;--S.top;}void main(){SqStack S;SElemType e;e = 999;cout << endl << endl << "InitStack.cpp";cout << endl << "==============" << endl;//建栈,并初始化InitStack(S);//返回top元素GetTop(S);//打印栈元素PrintStack(S);//向栈插入元素ePush(S, e);PrintStack(S);//删除栈顶元素Pop(S);PrintStack(S);system("pause");//防止运行结果一闪而过}
阅读全文
0 0
- c++实现栈建立,插入,删除
- 栈的建立,插入,删除
- 编程实现双链表的建立、插入、删除
- 链表的建立,输出,删除,插入运算的c语言实现
- C语言:动态链表的建立,查找,删除,插入功能的实现
- c语言实现线性表的建立,初始化,插入,删除,查找,遍历以及时间复杂度分析
- c语言实现单链表建立,插入,删除,查找,循环链表,静态链表
- 单链表-建立插入删除
- 单链表建立 插入 删除
- C语言链表的插入和删除、建立
- C语言链表的建立、插入和删除
- C语言习题 链表建立,插入,删除,输出
- C 动态链表的建立,输出,删除,插入
- 堆的建立, 元素插入, 删除的实现...
- java实现二叉排序树的建立,查找,插入,删除
- C++实现红黑树建立,销毁,查找,插入和删除
- 编程实现双链表的建立、插入、删除、求长、逆置
- 二叉树,建立,查询,删除,插入的简单实现
- java提高篇(三)-----理解java的三大特性之多态
- FZU2129 子序列个数(dp求不同子序列个数)
- 大数据Spark企业级实战版【学习笔记】----Spark术语
- 房贷算法
- mybatis基础知识
- c++实现栈建立,插入,删除
- GYM 101128 C.Canvas Painting【思维+优先队列】
- 20170816
- HDU 6127 Hard challenge【几何】
- 分布式系统事务一致性解决方案
- 中线交易——股票程序化交易模型鉴赏
- 原型设计模式
- 自定义视图的简单应用
- 数据指标 | 移动应用数据分析体系