编了个双向队列,突然不会输出验证下了
#include <stdio.h>#include <malloc.h>
#define M 100
typedef struct
{
int left;
int right;
int size;
int a[M];
}Queue;
void create(Queue *q);
void print(Queue *q);
int IsEmpty(Queue *q);
int IsFull(Queue *q);
void Push(int x,Queue *q);
void Inject(int x,Queue *q);
void create(Queue *q)
{
q->left =-1;
q->right =-1;
q->size =0;
}
int IsEmpty(Queue *q)
{
return (q->size ==0);
}
int IsFull(Queue *q)
{
return (q->size==M );
}
void Push(int x,Queue *q)
{
if(!IsFull(q))
{
if(q->left==M-1)
{
q->left=-1;
}
q->a[++q->left]=x;
q->size ++;
}
}
void Inject(int x,Queue *q)
{
if(!IsFull(q))
{
if(q->right == -1 || q->right == 0)
{
q->right = M;
}
q->a[--q->right]=x;
q->size ++;
}
}
void main()
{
Queue *q;
int x;
q=(Queue*)malloc(sizeof(Queue));
create(q);
printf("Input PushNumber ");
scanf("%d",&x);
Push(x,q);
printf("\nInput InjectNumber ");
scanf("%d",&x);
Inject(x,q);
}
就写了插入的,但是不会验证的了。。
各位大大帮帮忙!
[ 本帖最后由 小健健 于 2009-10-19 16:07 编辑 ]