| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:循环队列,删除队头元素时出错
只看楼主 加入收藏
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
结帖率:100%
收藏
 问题点数:0 回复次数:2 
循环队列,删除队头元素时出错
程序代码:
#include"stdio.h"
#define QueueSize 50
/*这是用到的基本函数*/
typedef int ElemType;
typedef struct
{
  ElemType *elem;
  int front;
  int rear;
}SeqQueue;

void InitQueue(SeqQueue *Q)
{
  Q->elem=(ElemType *)malloc(sizeof(ElemType)*QueueSize);
  if(Q->elem==NULL)
    exit(1);
  Q->front=Q->rear=0;
}

int Empty(SeqQueue Q)
{
  if(Q.front==Q.rear)
    return 1;
}

int Full(SeqQueue Q)
{
  if(Q.front==(Q.rear+1)%QueueSize)
    return 1;
}

void InsertElem(SeqQueue *Q,ElemType x)
{
  if(Full(*Q)==1)
    printf("The Queue is FULL!\n");
  else
    {
      Q->elem[Q->rear]=x;
      Q->rear=(Q->rear+1)%QueueSize;
    }
}

void DeElem(SeqQueue *Q,ElemType *x)
{
  if(Empty(*Q)==1)
    printf("The Queue is EMPTY!\n");
  else
    {
      *x=Q->elem[Q->front];
      Q->front=(Q->front+1)%QueueSize;
    }
}

void Print(SeqQueue Q)
{
  if(Empty(Q)==1)
    printf("The Queue is EMPTY!\n");
  else
    {
      int i,t=0;
      for(i=Q.front;t<Length(Q);t++,i=(i+1)%QueueSize)
        printf("%d,",Q.elem[i]);
    }
}
搜索更多相关主题的帖子: 元素 
2011-04-09 11:08
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
程序代码:
#include"basic.h"
/*这是主函数*/
main()
{
  SeqQueue *Qa;
  ElemType x;
  int i=1;
  Qa=(SeqQueue *)malloc(sizeof(SeqQueue));
  if(Qa==NULL)
    exit(1);
  InitQueue(Qa);
  printf("Input elem%d:",i++);
  scanf("%d",&x);
  while(x!=0)
    {
      InsertElem(Qa,x);
      printf("Input elem%d:",i++);
      scanf("%d",&x);
    }
  printf("The Queue is:");
  Print(*Qa);

  printf("\nDelete Front,");
  DeElem(Qa,&x);
  Print(*Qa);
  getch();
}

博观而约取
2011-04-09 11:10
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
int Empty(SeqQueue Q)
{
  if(Q.front==Q.rear)
    return 1;
}

当我把这段改为时,就可以运行成功,但是一直弄不明白是不是这里出错还是一种巧合?
程序代码:
int Empty(SeqQueue Q)
{
  if(Q.front==Q.rear)
    return 1;
  return -1;
}
[/quote]

博观而约取
2011-04-09 11:13
快速回复:循环队列,删除队头元素时出错
数据加载中...
 
   



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

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