#include <iostream.h>
#include <stdlib.h>
typedef struct node{
char data;
node *next;
}stack;
stack* push(stack *top,char d)
{
stack *p;
p=new stack;
if(p)
{
p->data=d;
p->next=top;
top=p;
return top;
}
else
{
cout<<"空间不足!!"<<endl;
exit(0);
}
}
char pop(stack* top)
{
char temp;
if(top==NULL)
{
cout<<"栈已空!!"<<endl;
exit(0);
}
else
{
temp=top->data;
top=top->next;
return temp;
}
}
void main()
{
stack *top;
top=NULL;
char temp;
push(top,'a');
temp=pop(top);
if(temp=='a')
{
cout<<"是回文字符串!"<<endl;
}
else
{
cout<<"不是回文字符串!"<<endl;
}
}
初学C++,也有一段时间没碰C++了,写了上面这段代码,不知道哪里出问题
问题很简单,输入一个字符串到一个栈里,在利用栈的性质判断是不是回文字符串
也许是我语法格式上有错,我把typedef 这个语句去掉后,直接用node声明top就没问题,而用stack申明时,我这样输入top-> 后面居然弄出一堆东西。。。不是应该只有data 和next么???
请各位帮忙找错误,再告诉我top-> 后面怎么会有这么多东西
谢谢!
top的传递是有问题,我照我们书上打的,这本教材很烂。
后面一堆东西如图,我不把node命名为stack后就没有了,这是怎么回事?