鱼C论坛

 找回密码
 立即注册
查看: 1532|回复: 2

[已解决]C++链栈基本操作——出栈时不能输出出栈元素

[复制链接]
发表于 2020-9-27 10:32:05 | 显示全部楼层 |阅读模式
1鱼币
在输入 D 时希望输出出栈的 元素,不知道哪里出错了,不要改动别的地方,只改Pop()里的或后面调用Pop的语句
#include<iostream>
using namespace std;
class Node
{
public:
        char data;
        Node *next;
};
class LinkStack
{
public:
        LinkStack(){top=NULL;}
        ~LinkStack();
        void Push(char x);
        char Pop();
        void Delete();
        
        char GetTop()
        {
                //ToDo
                return top->data ;
        }
        int Empty()
        {
                //ToDo
                if (top->next = NULL)
                {
                        return 0;
                }
                else
                {
                        return 1;
                }




        }
private:
        Node *top;
};
LinkStack::~LinkStack()
{
        //ToDo

}
void LinkStack::Push(char x)
{
        //ToDo 
        Node *s = new Node;
        s->data = x;
        s->next = top; 
        top = s;
}
char LinkStack::Pop()
{
        //ToDo
        Node *p = NULL;
        char x;
        if(top == NULL) throw "None";
        x = top->data ;
        p = top;
        top = top->next ;
        delete p;
        return x;
}
void LinkStack::Delete()
{ 
     //ToDo
     LinkStack lin;
     while(top != NULL)
     {
             lin.Pop() ; 
         }
}
int main()
{
        LinkStack Seq;
        char str,x;
        while(1)
        {
                cin>>str;
                //ToDo
        if(str == 'P')
        {
                Seq.Push(x); 
        }
        else if(str == 'D')
        {
                x = Seq.Pop();
                cout<<x <<endl; 
        }
        else if(str == 'T')
        {
                Seq.Delete()  ;
        }
        else if(str == 'Y')
        {
                int flag = Seq.Empty();
                if(flag)
                {
                        cout<<"No"<<endl;
                }
                else
                {
                        cout<<"Yes"<<endl;
                }
        }
        else if(str == 'E')
        {
                break;
        }
        
        }
        return 0;
}
谢谢啦
最佳答案
2020-9-27 10:32:06
x没有初始化,而且x入栈前没有赋值啊!
        if(str == 'P')
        {
               cin >> x
                Seq.Push(x);
        }

最佳答案

查看完整内容

x没有初始化,而且x入栈前没有赋值啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-27 10:32:06 | 显示全部楼层    本楼为最佳答案   
x没有初始化,而且x入栈前没有赋值啊!
        if(str == 'P')
        {
               cin >> x
                Seq.Push(x);
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-27 10:40:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 23:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表