64,646
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<cstdlib>
using namespace std;
typedef struct node
{
int data;
struct node *next;
} NODE,*PNODE;
typedef struct stack
{
PNODE ptop;
PNODE pbottom;
}STACK,*PSTACK;
void init(PSTACK);
void push(PSTACK,int);
void traverse(PSTACK);
int main()
{
STACK s;
init(&s);//初始化
push(&s,1);
push(&s,2);
push(&s,3);
traverse(&s);
return 0;
}
void init(PSTACK ps)
{
ps->ptop = new NODE;
if(ps->ptop == NULL)
{
cout<<"动态内存分配失败!"<<endl;
exit(-1);
}
else
{
ps->pbottom = ps->ptop;
ps->ptop->next = NULL;
}
}
void push(PSTACK ps, int val)
{
PNODE p = new NODE;
p->data = val;
p->next = ps->ptop;
ps->ptop=p;
return;
}
void traverse(PSTACK ps)
{
PNODE p=ps->ptop;
while(p!=ps->pbottom)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
return;
}
注意初始化栈函数里,tob和top单词拼写不一样。编译器应该已经检查出来了