24小时热门版块排行榜    

查看: 295  |  回复: 0

1直在路上

铁虫 (小有名气)

[求助] 出栈哪里出错了呢?最后两个函数 empty 和out_queue ,VC6.0显示出栈失败。。。。

# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>

typedef struct Queue
{
        int*pBase;
        int front;
        int rear;
}QUEUE;

void init(QUEUE *pQ,int len);
void en_queue(QUEUE *pQ,int num,int len);
bool full_queue(QUEUE *pQ,int len);
void traverse(QUEUE *pQ,int len);
bool out_queue(QUEUE*pQ,int*pVal,int len);
bool is_empty(QUEUE*pQ);







int main (void)
{
        QUEUE Q;
        int len;
        int i;
        int num;
        int val;
       
        printf("请输入队列长度:len = ";
        scanf("%d",&len);
       
        init(&Q,len);
        for(i = 0; i < len-1; ++i )//入队循环
        {
                printf("请输入第%d个要入队的元素:",i+1);
                scanf("%d",&num);
                en_queue(&Q,num,len);// 入队函数调用,想想 len 的作用
               
        }
       
        traverse(&Q,len);// 入队后遍历

        printf("\n";

       
        if(out_queue(&Q,&val,len))
                {
                        printf("出队成功!且出队的元素是:%d\n",val);
                }
        else
        {
                printf("出队失败!\n";
        }  

       


        return 0;
}

void init(QUEUE *pQ,int len)
{
        pQ->pBase  = (int*)malloc(sizeof(int)*len);
        if (NULL == pQ->pBase)
        {
                printf("动态内存分配失败!\n";
                exit(-1);
        }
        else
        {
                pQ->front = 0;
                pQ->rear = 0;
               
        }
       
        return;
       
}

void en_queue(QUEUE *pQ,int num,int len)
{
        if(full_queue(pQ,len))
        {
                printf("队列已满!";
               
        }
       
        else
        {
                pQ->pBase[pQ->rear] = num;
                pQ->rear = (pQ->rear +1) % len;
               
        }
       
        return;
       
}

bool full_queue(QUEUE *pQ,int len)
{
        if((pQ->rear +1)%len == pQ->front)
                return true;
        else
                return false;
       
}

void traverse(QUEUE *pQ,int len)
{
        int cnt = 0;
        while(pQ->front != pQ->rear)
        {
                printf("%d\n",pQ->pBase[pQ->front]);
                pQ->front = (pQ->front +1) % len;
                cnt++;
               
        }
       
        printf("长度为%d的队列中实际元素的个数为:%d \n",len,cnt);
       
        return;

}

bool out_queue(QUEUE * pQ,int *pVal,int len)
{
        if(is_empty(pQ))
                return false;
        else
        {
                *pVal = pQ->pBase[pQ->front];
                pQ->front = (pQ->front + 1) % len;
                return true;
       
        }

       

}

bool is_empty(QUEUE *pQ)
{
        if(pQ->front == pQ->rear)
                return true;
        else
                return false;

}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1直在路上 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 ELBZ6WwEaRj6 2026-11-04 8/400 2026-11-05 20:45 by qL1cU46YIdK0
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-05 20:43 by qL1cU46YIdK0
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 9/450 2026-11-05 20:34 by qL1cU46YIdK0
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 12/600 2026-11-05 20:21 by qL1cU46YIdK0
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 20:10 by qL1cU46YIdK0
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 ncTVBM6AOJHF 2026-11-04 11/550 2026-11-05 20:10 by qL1cU46YIdK0
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +6 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 20:10 by qL1cU46YIdK0
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ttH3f1oA6ace 2026-11-04 6/300 2026-11-05 18:00 by My20PsvIExYO
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 11/550 2026-11-05 17:58 by My20PsvIExYO
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 kvewwGtKktqB 2026-11-04 13/650 2026-11-05 17:47 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 kvewwGtKktqB 2026-11-04 8/400 2026-11-05 17:47 by My20PsvIExYO
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 17:36 by My20PsvIExYO
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 17:25 by My20PsvIExYO
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ncTVBM6AOJHF 2026-11-04 13/650 2026-11-05 17:15 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-05 16:08 by My20PsvIExYO
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-05 15:46 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 15:13 by My20PsvIExYO
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 11:10 by PYZmcHr5kSaq
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 10:39 by PYZmcHr5kSaq
[基金申请] 各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧 +5 iaeyuan 2026-11-01 5/250 2026-11-04 14:43 by jinchengzi
信息提示
请填处理意见