qianhz123 发表于 2017-7-4 14:59:32

小甲鱼数据结构与算法中的队列中的问题

#include<stdio.h>
#include<stdlib.h>
typedef char ElemType;
typedef struct QNode{
        ElemType date;
        struct QNode* next;
}QNode,*QueuePrt;
typedef struct{
        QueuePrt front,rear;
}LinkQueue;
void InitQueue(LinkQueue *q)
{
        q->front=(QueuePrt)malloc(sizeof(QNode));
        if(!q->front)
        exit(0);
        q->front=NULL;
        q->rear=q->front;
}
void InsetQueue(LinkQueue *q,ElemType c)
{
        QueuePrt p;
        p=(QueuePrt)malloc(sizeof(QNode));
        if(!p)
        return;
        p->date=c;
        p->next=NULL;
        q->rear->next=p;
        q->rear=p;       
}
void DelteQueue(LinkQueue *q)
{
        QueuePrt p;
        if(q->front==q->rear)
        return;
        p=q->front;
        q->front=q->front->next;
        if(p==q->rear)
        {
                q->rear=q->front;
        }
        free(p);
}
void DestoryQueue(LinkQueue *q)
{
        while(q->front)
        {
                q->rear=q->front;
                q->front=q->front->next;
                free(q->rear);
        }
}
void DisplayQueue(LinkQueue *q)
{
        while(q->front)
        {
                printf("%c ",q->front->next->date);
                q->front++;
        }
}
int main()
{
        LinkQueue q;
        ElemType c;
        InitQueue(&q);
        printf("请输入进入队列的数:\n");
        scanf("%c",&c);
        while(c!='#')
        {
                InsetQueue(&q,c);
                scanf("%c",&c);
        }
        DisplayQueue(&q);
        DestoryQueue(&q);
        return 0;       
}

zlj19931010 发表于 2017-7-4 14:59:33

第一次插入的时候 q->rear 为NULL,在 q->rear->next 就报错了

qianhz123 发表于 2017-7-4 15:02:07

经过调试出现Program stopped at 0x401375 错误提示框

qianhz123 发表于 2017-7-4 22:47:49

zlj19931010 发表于 2017-7-4 16:26
第一次插入的时候 q->rear 为NULL,在 q->rear->next 就报错了

谢谢解答,我是新手,请多多关照!

我就是我520小莉 发表于 2017-7-5 08:09:20

看不懂
页: [1]
查看完整版本: 小甲鱼数据结构与算法中的队列中的问题