作者在 2017-04-22 10:54:00 发布以下内容
#include<iostream>
#include<cstdlib>
using namespace std;
int *Array=NULL;
int Count=0;
void Initial(int Size); //初始化栈
void Push(int Element); //入栈
int GetStackLenth(void);//获取栈的个数
void GetTopOfStack(void);//栈顶元素
void Pop(void); //出栈
void Traverse(void); //遍历
void Destory(void); //释放栈的内存
int main() ///测试
{
int a[8]={15,65,13,81,26,34,88,55};
int Choose;
Initial(100); //栈的初始化:开辟
for(int i=0;i<8;i++)
Push(a[i]); //数组的数依次入栈
Traverse(); //栈的遍历:从栈顶到栈尾依次输出
cout <<endl <<"请输入你的选择:\n1.出栈 2.结束" <<endl ;
while(1)
{
cin >>Choose ;
switch(Choose)
{
case 1:
Pop(); break;
case 2:
break;
default :
cout <<"输入选项有误!" <<endl ; break ;
}
if(Choose==2) break;
}
Traverse(); //发生变化后重新遍历,比对以前的栈
Destory(); //用完就释放内存
return 0;
}
void Initial(int Size)
{
Array=(int *)malloc(sizeof(int)*Size); //Size是栈的容纳个数
if(Array==NULL)
cout <<"空间不足! " <<endl ;
}
void Push(int Element) //入栈
{
Array[Count++]=Element;
}
int GetStackLenth(void) //获得栈的个数
{
return Count ;
}
void GetTopOfStack(void) //获得栈顶元素
{
if(GetStackLenth()==0)
cout <<"空栈 " <<endl ;
else
cout <<"栈顶元素为 " <<Array[Count-1] ;
}
void Pop(void) //出栈
{
if(GetStackLenth()==0)
cout <<"空栈!无法进行出栈操作 " <<endl ;
else
Array[Count--]=0 ;
}
void Traverse(void) //遍历
{
int Lenth=GetStackLenth();
if(Lenth==0)
cout <<"空栈! " <<endl ;
else
while(Lenth--)
cout <<Array[Lenth] <<' ' ;
cout <<endl <<"遍历完毕 " ;
GetTopOfStack();
}
void Destory(void)
{
delete Array;
}
#include<cstdlib>
using namespace std;
int *Array=NULL;
int Count=0;
void Initial(int Size); //初始化栈
void Push(int Element); //入栈
int GetStackLenth(void);//获取栈的个数
void GetTopOfStack(void);//栈顶元素
void Pop(void); //出栈
void Traverse(void); //遍历
void Destory(void); //释放栈的内存
int main() ///测试
{
int a[8]={15,65,13,81,26,34,88,55};
int Choose;
Initial(100); //栈的初始化:开辟
for(int i=0;i<8;i++)
Push(a[i]); //数组的数依次入栈
Traverse(); //栈的遍历:从栈顶到栈尾依次输出
cout <<endl <<"请输入你的选择:\n1.出栈 2.结束" <<endl ;
while(1)
{
cin >>Choose ;
switch(Choose)
{
case 1:
Pop(); break;
case 2:
break;
default :
cout <<"输入选项有误!" <<endl ; break ;
}
if(Choose==2) break;
}
Traverse(); //发生变化后重新遍历,比对以前的栈
Destory(); //用完就释放内存
return 0;
}
void Initial(int Size)
{
Array=(int *)malloc(sizeof(int)*Size); //Size是栈的容纳个数
if(Array==NULL)
cout <<"空间不足! " <<endl ;
}
void Push(int Element) //入栈
{
Array[Count++]=Element;
}
int GetStackLenth(void) //获得栈的个数
{
return Count ;
}
void GetTopOfStack(void) //获得栈顶元素
{
if(GetStackLenth()==0)
cout <<"空栈 " <<endl ;
else
cout <<"栈顶元素为 " <<Array[Count-1] ;
}
void Pop(void) //出栈
{
if(GetStackLenth()==0)
cout <<"空栈!无法进行出栈操作 " <<endl ;
else
Array[Count--]=0 ;
}
void Traverse(void) //遍历
{
int Lenth=GetStackLenth();
if(Lenth==0)
cout <<"空栈! " <<endl ;
else
while(Lenth--)
cout <<Array[Lenth] <<' ' ;
cout <<endl <<"遍历完毕 " ;
GetTopOfStack();
}
void Destory(void)
{
delete Array;
}