您的位置:首页 > 运维架构

算法导论 chapter 10.1 Page233 Stack push and pop

2014-07-18 18:16 381 查看
//***算法导论 chapter 10 Elementary Data Structures***///
//Page 233 伪代码转换成代码
//Stack push and pop

#include <iostream>
#define TRUE 1
#define FALSE 0
using namespace std;

int stack_array[20]={0};//定义一个数组,当做桟来使用
int top=0;              //top指示桟的顶端元素,0代表桟为空

//判断桟是否为空,为空返回1,反之为0
int stack_empty(int top)
{
if(top==0)
return TRUE;
else
return FALSE;
}

//将新元素x压入桟中
int push(int *ptr, int x)
{
top+=1;
*(ptr+top)=x;
return 0;
}

//将顶端的元素弹出桟,并返回弹出的元素
int pop(int *ptr)
{
if(stack_empty(top)==1)
cout<<"underflow"<<endl;
else
{
top-=1;
return *(ptr+top+1);
}
return 0;
}

//打印桟
void print_stack(int *ptr)
{
if(stack_empty(top)==1)
cout<<"The stack is empty."<<endl;
else
{
for(int i=1;i<=top;++i)
{
cout<<*(ptr+i)<<" ";
}
cout<<"Top = "<<top;
cout<<endl;
}
}

int main()
{
push(stack_array,15);
push(stack_array,6);
push(stack_array,2);
push(stack_array,9);
print_stack(stack_array);

pop(stack_array);
print_stack(stack_array);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐