标题:师傅们帮忙看一下我的 这个队列程序 为什么 出对失败
只看楼主
业余爱好者
Rank: 2
等 级:论坛游民
帖 子:28
专家分:23
注 册:2013-4-23
结帖率:80%
已结贴  问题点数:10 回复次数:2 
师傅们帮忙看一下我的 这个队列程序 为什么 出对失败
#include<stdio.h>
#include<malloc.h>
typedef struct Queue
{
    int *pBase;
    int front;
    int rear;

} QUEUEQ ;

void init(QUEUEQ *);

bool en_queue(QUEUEQ *,int val);

void traverse_queue(QUEUEQ * pQ);

bool full_queue(QUEUEQ *);

bool emput_queue(QUEUEQ * pQ);

bool out_queue(QUEUEQ *, int *pval);


int main()
{
    QUEUEQ Q;
    int val;

    init(&Q);

    en_queue(&Q, 1);
    en_queue(&Q, 2);
    en_queue(&Q, 3);
    en_queue(&Q, 4);
    en_queue(&Q, 5);
    en_queue(&Q, 6);
    en_queue(&Q, 7);
    en_queue(&Q, 8);

       traverse_queue( &Q);
   
    if(out_queue(&Q,&val))
    {
        
        printf("出队成功%d\n",val);
    }
    else
    {
        printf("出队失败");
    }
    printf("\n");
    traverse_queue( &Q);

    return 0;
}

void init(QUEUEQ * pQ)
{
    pQ->pBase = (int *)malloc(sizeof(int) * 6);
    pQ->front = 0;
    pQ->rear = 0;

}
bool full_queue(QUEUEQ *pQ)
{
    if((pQ->rear + 1) % 6 == pQ->front)
        return true;
    else
        return false;

}

bool en_queue(QUEUEQ * pQ, int val)
{
    if( full_queue(pQ))
    {
        return false;
    }
    else
    {
        pQ->pBase[pQ->rear] = val;
        pQ->rear = (pQ->rear + 1) % 6;
        return true;
    }
}

void  traverse_queue(QUEUEQ * pQ)
{
    int i = pQ->front;
    while(i != pQ->rear)
    {
        printf("%d ",pQ->pBase[i]);
        i = (i+1) % 6;
    }
    printf("\n");
    return ;
}

bool emput_queue(QUEUEQ * pQ)
{
    if(pQ->front == (pQ->rear + 1) % 6)
        return true;
    else
        return false;
}
 bool out_queue(QUEUEQ *pQ, int *pval)
{
    if( emput_queue(pQ) )
        return false;
    else
    {
        *pval = pQ->pBase[pQ->front];
        pQ->front = (pQ->front + 1) % 6;
        return true;
        
    }
   
}
搜索更多相关主题的帖子: void include 
2013-05-10 09:31
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:10 
bool emput_queue(QUEUEQ * pQ)
{
    return pQ->front == pQ->rear;
}


[fly]存在即是合理[/fly]
2013-05-10 15:15
业余爱好者
Rank: 2
等 级:论坛游民
帖 子:28
专家分:23
注 册:2013-4-23
得分:0 
bool emput_queue(QUEUEQ * pQ)
{
    if(pQ->rear == (pQ->front + 1) % 6)
        return true;
    else
        return false;
}

还是自己找到了  这里这样写就对了
2013-05-12 01:05



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




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

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