ホームページ  >  に質問  >  本文

C++的队列问题

C#include<iostream>
using namespace std;
struct node
{
    node *next;
    char data;
    node *front;
    node *rear;
};
node InitQueue();
int main()
{
    InitQueue();
    return 0;
}
node InitQueue()
{
    char temp;
    int i=0;
    node *Q;
    Q->front=Q->rear=new node;
    if(!Q->front)
    {
        cout<<"出错"<<endl;
    }
    Q->front->next=NULL;
    do
    {
        cin>>temp;
        if(temp=='$')
        {
            char e;
            if(Q->front==Q->rear)
            {
                cout<<"³ö´í!"<<endl;
            }
            node *Z;
            Z=Q->front->next;
            e=Z->data;
            Q->front->next=Z->next;
            cout<<e<<':'<<i<<'s'<<endl;
        }
        else if(temp!='#')
        {
            node *P=new node;
            P->data=temp;
            P->next=NULL;
            Q->rear->next=P;
            Q->rear=P;
            i++;
        }
    }while(temp!='#');
}

这是用队列来解决的食堂问题
这个代码的正确写法我知道了
但就是想问问这个为什么错,也不能说错吧,用codeblock运行之后就崩溃了,编译能通过
求指教!谢谢。。

阿神阿神2765日前600

全員に返信(2)返信します

  • PHPz

    PHPz2017-04-17 11:55:47

    node *Q; 指针没初始化直接使用 不崩溃才奇怪
    

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:55:47

     node *Q = (node*)malloc(sizeof(node));
     Q->front=Q->rear=Q;
    

    返事
    0
  • キャンセル返事