栈的入栈和出栈操作
来源:互联网 发布:收藏品网站源码 编辑:程序博客网 时间:2024/04/30 21:42
栈是个好东西,后进先出是其精髓,今天就来点比较基础的东西,先来解决入栈和出栈问题
#include <iostream>#include <stdlib.h>using namespace std;//重中之重,先定义一个类class Stack{public:void push(int x);//入栈需要参数,不要忘了int pop();//出栈不需要参数//还要对栈进行初始化void init();struct stack{int num;//栈存的内容stack *next, *prev;}*top;};//首先对成员函数init()进行初始化void Stack::init(){//第一步进行分配内存空间,其实用new让系统自动分配空间个人感觉会更好top = (struct stack *)malloc(sizeof(struct stack));top->num = -1;top->prev = NULL;top->next = NULL;}//首先进行入栈void Stack::push(int x){stack *p;p = (struct stack *)malloc(sizeof(struct stack));top->next = p;p->prev = top;top = p;top->num = x;}//进行出栈int Stack::pop(){if (top->prev != NULL){int x = top->num;top = top->prev;top->next = NULL;return x;}else{return 6666666;}}int main(){Stack s;//首先进行初始化s.init();while (1){cout << "入栈请输入1,出栈请输入2,退出请输入3" << endl;int k;cin >> k;if (k == 1){int x;cout << "请输入入栈的元素:";cin >> x;s.push(x);cout << "入栈操作成功!" << endl;}if (k == 2){int top = s.pop();if (top == 6666666){cout << "对不起,当前栈为空,不能出栈,否则产生错误!" << endl;}else{cout << "出栈操作成功! 当前栈顶元素为: " << top << endl;}}if (k == 3){cout << "退出成功,谢谢" << endl;break;}}return 0;}让我们来看看运行结果
0 0
- 栈的入栈和出栈操作的实现
- 栈的入栈和出栈操作
- 链表栈的入栈和出栈操作
- 栈的入栈/出栈操作
- UINavigationController的出栈和入栈
- 链式存储结构实现队列的入队和出队操作以及 栈的出栈和入栈操作
- 入栈和出栈
- 堆栈-线性存储(出栈和入栈操作)
- 3.5判断出栈和入栈操作序列是否合法
- 编程实现栈的入栈与出栈操作
- 栈的基本操作 出栈与入栈
- 编程实现栈的入栈/出栈操作
- 栈的操作,创建,遍历,入栈,出栈
- 栈的出栈、入栈、遍历、清空操作
- 链栈的常用操作(初始化,入栈,出…
- 数据机构(五) 顺序栈的基本操作 --- 包含初始化,入栈和出栈
- (四)顺序栈的入栈和出栈
- 关于arm汇编入栈和出栈的总结
- Java中如何遍历Map对象的4种方法
- 重拾C语言一
- Angular2 小贴士 RouterLink 导航
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
- caffe test
- 栈的入栈和出栈操作
- 基于JavaMail的Java邮件发送:复杂邮件发送
- java锁机制:synchronized、Lock、Condition
- 【冒泡排序】树状数组 & 结论
- 使用git将本地项目发布到GitHub或者码云上面流程记录
- Android 打开关闭手机扬声器
- ajax 执行success 还是error 为什么报parsererror
- CSS书写规范、顺序和命名规则
- 简述AIDL架构