标题:顺序队列 求指错修改
只看楼主
成欢欢
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-4-16
结帖率:66.67%
已结贴  问题点数:10 回复次数:4 
顺序队列 求指错修改
#include<stdio.h>
#include<stdlib.h>

#define OK 1
#define ERROR 0
#define OVERFLOW -2

#define MAXQSIZE 7
typedef int QElemType;
typedef int Status;

typedef struct
{
    QElemType base[MAXQSIZE];
    int front;
    int rear;
}SqQueue;
SqQueue Q;

int main()
{
    Status InitQueue(SqQueue Q);/*循环列队的初始化*/
    int QueueLength(SqQueue Q);/*求循环列队的长度*/
    Status EnQueue(SqQueue Q,QElemType e);/*循环列队的入队*/
    Status DeQueue(SqQueue Q,QElemType e);/*循环列队的出队*/
    void Shuru(SqQueue Q);/*输入列队的值*/


SqQueue S;
int a,b,i,x,e;

a=InitQueue(S);/*循环列队的初始化*/
if(a==1)  printf("循环列队S初始化成功!!!\n");

Shuru(S);

b=QueueLength(S);/*求循环列队的长度*/
printf("循环列队的长度b为%d\n",b);

printf("输入要入队的数x为");
scanf("%d",&x);
EnQueue(S,x);/*循环列队的入队*/
for(i=0;i<b;i++)
printf("%5d",Q.base[i]);

DeQueue(Q,e);/*循环列队的出队*/
for(i=0;i<b-1;i++)
printf("%5d",Q.base[i]);

getch();
return 0;

}

Status InitQueue(SqQueue Q)/*循环列队的初始化*/
{
    Q.rear=0;
    Q.front=0;
    return OK;
}

int QueueLength(SqQueue Q)/*求循环列队的长度*/
{int w;
    w=(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;
return w;
}

Status EnQueue(SqQueue Q,QElemType e)/*循环列队的入队*/
{
    if((Q.rear+1)%MAXQSIZE==Q.front)
    {
        printf("列队已满无法插入!!!!\n");
        return ERROR;
    }
    else
    {
        Q.rear=Q.rear+1;
        Q.base[Q.rear]=e;
        Q.rear=(Q.rear+1)%MAXQSIZE;
        return 1;
    }
}

Status DeQueue(SqQueue Q,QElemType e)/*循环列队的出队*/
{
    if(Q.front==Q.rear)
    {
        printf("队列已空无数据元素出队!!!\n");
        return 0;
    }
    else
    {
        e=Q.base[Q.front];
        Q.front=(Q.front+1)%MAXQSIZE;
        return 1;
    }
}

void Shuru(SqQueue Q)/*输入列队的值*/
{QElemType i;

    /*printf("请输入要创建的列表的长度n=");
    scanf("%d",&n);*/
    printf("输入6个数,用空格隔开\n");
    for(i=0;i<6;i++)
    {
        scanf("%d",&Q.base[i]);
        
    }
    Q.rear=5;
}
搜索更多相关主题的帖子: void include 
2013-04-16 21:05
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
得分:0 
回复 楼主 成欢欢
你这个也错的太多了吧,改的话要改很多!

练就一身本领,只为笑傲江湖!
2013-04-17 14:16
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
得分:10 
回复 楼主 成欢欢
我改了一下,不知道是不是你想要的,自己看看吧,新手发言,说错勿怪!
#include<stdio.h>
#include<stdlib.h>

#define OK 1
#define ERROR 0
#define OVERFLOW -2

#define MAXQSIZE 7
typedef int QElemType;
typedef int Status;

typedef struct
{
    QElemType base[MAXQSIZE];
    int front;
    int rear;
}SqQueue;

SqQueue S;

int main()
{
    Status InitQueue();/*循环列队的初始化*/
    int QueueLength();/*求循环列队的长度*/
    Status EnQueue(QElemType e);/*循环列队的入队*/
    Status DeQueue();/*循环列队的出队*/
    void Shuru();/*输入列队的值*/



int a,b,i,x;

a=InitQueue();/*循环列队的初始化*/
if(a==1)  printf("循环列队S初始化成功!!!\n");
Shuru();
b=QueueLength();/*求循环列队的长度*/
printf("循环列队的长度b为%d\n",b);

printf("输入要入队的数x为");
scanf("%d",&x);
EnQueue(x);/*循环列队的入队*/
for(i=0;i<b+1;i++)                      //这里因为已经插入了一个元素,但是b还是插入前的元素个数;所以根本不能全部输出来,所以是b+1
printf("%5d",S.base[i]);
printf("\n");
DeQueue();/*循环列队的出队*/
for(i=0;i<b;i++)
printf("%5d",S.base[i]);
printf("\n");
getchar();
return 0;

}

Status InitQueue()/*循环列队的初始化*/
{
    S.rear=0;
    S.front=0;
    return OK;
}

int QueueLength()/*求循环列队的长度*/
{int w;
    w=(S.rear-S.front+MAXQSIZE)%MAXQSIZE;
return w+1;
}

Status EnQueue(QElemType e)/*循环列队的入队*/
{
    if((S.rear+1)%MAXQSIZE==S.front)
    {
        printf("列队已满无法插入!!!!\n");
        return ERROR;
    }
    else
    {
        S.rear=(S.rear+1)%MAXQSIZE;
        S.base[S.rear]=e;
        return 1;
    }
}

Status DeQueue()/*循环列队的出队*/
{
    if(S.front==S.rear)
    {
        printf("队列已空无数据元素出队!!!\n");
        return 0;
    }
    else
    {
        S.front=(S.front+1)%MAXQSIZE;
        return 1;
    }
}

void Shuru()/*输入列队的值*/
{QElemType i;
    printf("输入6个数,用空格隔开\n");
    for(i=0;i<6;i++)
    {
        scanf("%d",&S.base[i]);
        
    }
    S.rear=5;
}

练就一身本领,只为笑傲江湖!
2013-04-17 15:28
成欢欢
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-4-16
得分:0 
是的,谢谢!
2013-04-17 19:33
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
得分:0 
回复 4楼 成欢欢
不过个人觉得你的程序需要很多改进哦

练就一身本领,只为笑傲江湖!
2013-04-17 22:44



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




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

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