C++顺序栈的出栈入栈

#include 

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<<"栈为空"<PTop;//p指向最后一个结点
    while(p != ps->pBottom)
    {
        cout<data<<" ";
      

你可能感兴趣的:(数据结构,c++,数据结构,栈)