标题:关于链式结构的队列的一个问题,请大家指导。。
取消只看楼主
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
结帖率:100%
已结贴  问题点数:20 回复次数:2 
关于链式结构的队列的一个问题,请大家指导。。

    添加if(pFirst->front == pFirst->rear)
        {
            puts("queue is empty!!");
            exit(0);   
        }出队失败。。,删除后出队成功

程序代码:
#include <stdio.h>
#include <stdlib.h>

typedef struct NQUEUE
{
    int data;
    struct NQUEUE *next;
}nQueue;

typedef struct LQUEUE
{
    nQueue *front;
    nQueue *rear; 
}lQueue;

void display(lQueue *);
void init(lQueue *);
void enQueue(lQueue *, int);
void deQueue(lQueue *);

int main(void)
{
    lQueue *pFirst = (lQueue *)malloc(sizeof(lQueue));
    int data = 0;
    int i = 0;
    
    init(pFirst);
    
    for( i = 1; i < 8; i++ )
    {
        enQueue(pFirst, i);
    }
    
    display(pFirst);

    deQueue(pFirst);
    deQueue(pFirst);
    puts("");

    display(pFirst);
    
    return 0;
}



void display(lQueue *pFirst)
{
    nQueue *tmp = pFirst->front->next;
    
    while(tmp)
    {
        printf("%3d", tmp->data);
        tmp = tmp->next; 
    }
}

void init(lQueue *pFirst)
{
    pFirst->front = pFirst->rear = (nQueue *)malloc(sizeof(nQueue));
    pFirst->front->next = NULL;
    pFirst->front->data = 0;    
}

void enQueue(lQueue *pFirst, int e)
{
    nQueue *tmp = (nQueue *)malloc(sizeof(nQueue));
    tmp->data = e;
    tmp->next = NULL;
    
    pFirst->rear->next = tmp;
    pFirst->rear = tmp;
}

void deQueue(lQueue *pFirst)
{
    nQueue *tmp = NULL;
    if(pFirst->front == pFirst->rear)//问题所在。。。
    {
        puts("queue is empty!!");
        exit(0);    
    }
    
    tmp = pFirst->front->next;
    pFirst->front->next = tmp->next;
    
    if(tmp == pFirst->rear);
    {
        pFirst->rear = pFirst->front;
    }
    
    free(tmp);
    tmp = NULL;
    
}


搜索更多相关主题的帖子: int data next void tmp 
2017-04-30 10:54
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
得分:0 
回复 2楼 九转星河
天啊!!!!!!!
2017-04-30 11:28
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
得分:0 
回复 2楼 九转星河
多谢!!我现在想静静。。
2017-04-30 11:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476545-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.820713 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved