// DataStructTest.cpp : Defines the entry point for the console application.
//
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include "stdafx.h"
#include <iostream.h>
#include <malloc.h>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
int const sqstack_maxsize=6;
struct sqstack
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
int data[sqstack_maxsize];
int top;
};
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//初始化
void InitStack(sqstack * sq)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
sq->top=0;
}
//入栈
int Push(sqstack * sq,int value)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
if (sq->top<sqstack_maxsize)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
sq->top++;
sq->data[sq->top-1]=value;
return 1;
}
else
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return 0;
}
}
//出栈
int Pop(sqstack & sq,int & value)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
if (sq.top==0)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return 0;
}
value=sq.data[sq.top-1];
sq.top--;
return 1;
}
//判断空栈
int EmptyStack(sqstack & sq)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
if (sq.top==0)
return 1;
else
return 0;
}
//得到栈顶元素
int GetTop(sqstack & sq , int & value)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
if (sq.top==0)
return 0;
else
value=sq.data[sq.top-1];
return 1;
}
//显示
void Display(sqstack & sq)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
for(int i=1;i<=sq.top;i++)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
cout<<"栈中第"<<i<<"个元素为:"<<sq.data[i-1]<<endl;
}
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
int main(int argc, char* argv[])
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
sqstack sq;
InitStack(&sq);
//
cout<<"分别入栈6,5,4,3,2,1"<<endl;
Push(&sq,6);
Push(&sq,5);
Push(&sq,4);
Push(&sq,3);
Push(&sq,2);
Push(&sq,1);
Display(sq);
//
int value=0;
Pop(sq,value);
cout<<"退栈操作得到的结果为:"<<value<<endl;
Display(sq);
//
GetTop(sq,value);
cout<<"得到栈顶原素为:"<<value<<endl;
return 0;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
一点说明:为什么在标题中要嵌入英文?原因是为了能够让国外的网友能查询到这篇文章。平常在Google上查资料的时候,经常参考国外网友的博客,帮助我解决了很多问题,所以我也想让他们能够参考我写的内容。当然文中我不可能全部译为英文,所以我尽量把代码粘全,靠代码说话吧。