c++实现两个元素进栈和出栈的顺序
2015-09-20 17:40
232 查看
1、在数据结构的书中大多是伪代码,没有给出一个完整的程序,在此小编给大家一个完整的简单的入栈出栈操作。
2、实现的功能是:观察两个数的入栈和出栈顺序。
3、程序和代码:
#include<iostream>
#include<stdlib.h>
using namespace std;
struct Stack{
int* base;
int top;
int stack_size;
};
int IniStack(Stack &s,int size){
s.base=(int*)malloc(size *sizeof(int));
if(s.base==NULL)return 0;
s.top=0;
s.stack_size=size;
return 1;
}
int Push(Stack &s,int e){
s.base[s.top]=e;
s.top++;
return 1;
}
int Pop(Stack &s){
if(s.base[s.top]==0)return 0;
s.top--;
return s.base[s.top];
}
int exchange(int x,int y){
Stack s;
IniStack(s,3);
Push(s,x);
Push(s,y);
x=Pop(s);
y=Pop(s);
cout<<"x="<<x<<"y="<<y<<endl;
return 1;
}
int main(){
int x,y;
cout<<"请输入x的值:"<<endl;
cin>>x;
cout<<"请输入y的值:"<<endl;
cin>>y;
exchange(x,y);
return 0;
}
运行结果:
请输入x的值:
45
请输入y的值:
56
x=56y=45
请按任意键继续. . .
2、实现的功能是:观察两个数的入栈和出栈顺序。
3、程序和代码:
#include<iostream>
#include<stdlib.h>
using namespace std;
struct Stack{
int* base;
int top;
int stack_size;
};
int IniStack(Stack &s,int size){
s.base=(int*)malloc(size *sizeof(int));
if(s.base==NULL)return 0;
s.top=0;
s.stack_size=size;
return 1;
}
int Push(Stack &s,int e){
s.base[s.top]=e;
s.top++;
return 1;
}
int Pop(Stack &s){
if(s.base[s.top]==0)return 0;
s.top--;
return s.base[s.top];
}
int exchange(int x,int y){
Stack s;
IniStack(s,3);
Push(s,x);
Push(s,y);
x=Pop(s);
y=Pop(s);
cout<<"x="<<x<<"y="<<y<<endl;
return 1;
}
int main(){
int x,y;
cout<<"请输入x的值:"<<endl;
cin>>x;
cout<<"请输入y的值:"<<endl;
cin>>y;
exchange(x,y);
return 0;
}
运行结果:
请输入x的值:
45
请输入y的值:
56
x=56y=45
请按任意键继续. . .
相关文章推荐
- C++拷贝构造函数详解
- c++地址问题
- C++虚继承的概念
- C/C++堆和栈的区别
- 项目19.2 能够对齐的数据
- 黑马程序员--C语言学习笔记之运算符
- C文件API函数
- C++中接口与抽象类
- 3Sum, 3Sum Closest, 4 Sum
- C深入笔记
- c++11 Thread库初探
- 项目19.1 字符及其编码
- Visual Studio C++ include与library
- 快速幂(C语言实现) 超详细 (转载)
- 应聘C语言知识点复习 二
- 模板函数 c++
- C++技术点积累(6)——异常处理、输入和输出流
- 怎样才算精通C语言呢?
- 由C++ assign()函数引出的一个问题
- C++学习计划