该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "stdafx.h"
#include"iostream"
using namespace std;
struct NODE
{
char data;
struct node*next;
};
int check(char *top,int i)
{
if(top->data==-1)
{
i=0;
return(i);
}
else
{
i=2;
return(i);
}
};
char pushstack(NODE *top,char x)
{
NODE *p;
p=(NODE)malloc(sizeof(NODE));
p->data=x;
p->next=top;
top=p;
printf("入栈成功");
return(top);
}
int popstack(NODE *top,char *p,int j)
{
struct NODE *q;
for(;j!=0;j--)
{
*p=top->data;
q=top;
top=top->next;
free(q);
return(top);
}
printf("出栈成功");
}
void main()
{
char *top,*p;
int i,j;
char a,b,c;
check(top,i);
if(i==0)
{
printf("空栈,请输入入栈字符:");
scanf("%c",&a);
*p=a;
pushstack(top,p);
}
else
{
printf("请选择需要进行的操作\n");
printf("1,入栈\n");
printf("2,出栈");
scanf("%d",&j);
if(j==1)
{
printf("请输入需要出栈的字符");
scanf("%c",&a);
pushstack(top,a);
}
if(j==2)
{
printf("请输入需要出栈的元素个数");
scanf("%d",&i);
popstack(top,*p,i);
}
else
printf("错误操作!");
}
}要求是堆栈的进栈,出栈,而且要显示出出栈的内容,我搞了好久始终有问题啊,那位大哥帮帮忙嘛,分随不多,但是真的很重要,谢谢了,麻烦了啊 能够解释一下更好,谢谢了哈