YXTS122 2016-01-06 23:44 采纳率: 100%
浏览 1531
已采纳

修改了下代码就运行出错了,怎么回事?

 #include<iostream>
using namespace std;
struct list
{
    int data;   struct list *next;
};
class Stack
{
    struct list *ptr;
public:
    Stack()
    {
        ptr=NULL;
    }
    void push(int x)//进栈成员函数
    {
        struct list *newnode=new struct list;
        newnode->data=x;
        newnode->next=ptr;
        ptr=newnode;
    }
    int pop()//出栈成员函数
    {
        //struct list *top;
        int value;
        value=ptr->data;
        //top=ptr;
        ptr=ptr->next;
        //delete top;
        return value;
    }
    int empty()
    {
        if(ptr==NULL)
            return 1;
        else
            return 0;
    }
};
class Queue
{
    struct list *ptrf,*ptrb;
public:
    Queue()
    {
        ptrf=ptrb=NULL;
    }
    void enqueue(int x)//进队成员函数
    {
        struct list *newnode=new struct list;
        newnode->data=x;
        newnode->next=NULL;
        if(ptrb==NULL)
            ptrf=ptrb=newnode;
        else
        {
            ptrb->next=newnode;
            ptrb=newnode;
        }
    }
    int dequeue()//出队成员函数
    {
        //struct list *tmp;
        int value;
        value=ptrf->data;
        //tmp=ptrf;
        ptrf=ptrf->next;
        //delete tmp;
        return value;
    }
};
void main()
{
    Stack S;//定义一个栈对象
    Queue Q;//定义一个队列对象
    char ch; int e,p,d;
    cout<<"输入数据:";
    while((ch=getchar())!='.')
    {
        S.push(ch);
        Q.enqueue(ch);
    }
    //while(!S.empty()&&S.pop()==Q.dequeue());退栈和出队,比较是否相同
    e=S.empty();
    while(e==0)
    {
        p=S.pop();
        d=Q.dequeue();
        if(p!=d)
            break;
    }
    if(e==1)
        cout<<"输入的是回文数据."<<endl;
    else
        cout<<"输入的不是回文数据."<<endl;
    system("pause");
}


图片说明

  • 写回答

2条回答 默认 最新

  • ysuwood 2016-01-07 00:23
    关注
     e=S.empty();
        while(e==0) //e始终不变,不就是死循环了吗
        {
            p=S.pop();
            d=Q.dequeue();
            if(p!=d)
                break;
                    e=S.empty(); //增加
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示