#include <iostream>
using namespace std;
typedef struct Node
{
int data;//数据域
struct Node * pNext;//指针域
}NODE,*PNODE;
typedef struct Stack
{
PNODE PTop;
PNODE pBottom;
}STACK,*PSTACK;
//初始化
void init(PSTACK ps)
{
ps->PTop=ps->pBottom=(PNODE)malloc(sizeof (NODE));//栈的top指针、bottom指针指向第一个结点
ps->PTop->pNext=NULL;
}
//入栈
void push(PSTACK ps, int n)
{
PNODE pNew=(PNODE)malloc(sizeof (NODE));
pNew->data=n;
pNew->pNext=ps->PTop;//pNew的指针域指向第一个结点的指指针域
ps->PTop=pNew;//栈的top指针指向新节点
}
//判空
bool empt(PSTACK ps)
{
if(ps->PTop==ps->pBottom)
return true;
else
return false;
}
//遍历
void traverse(PSTACK ps)
{
if(empt(ps))
{
cout<<"栈为空"<<endl;
}
else
{
PNODE p=ps->PTop;//p指向最后一个结点
while(p != ps->pBottom)
{
cout<<p->data<<" ";
C++顺序栈的出栈入栈
最新推荐文章于 2023-08-31 16:47:12 发布