您的位置:首页 > 其它

顺序队列的入队,出队,遍历队列计算队列的长度

2014-11-02 17:48 218 查看
#include "stdio.h"

#include "stdlib.h"

#define N 100

#define TRUE 1

#define FALSE 0

typedef struct queue{

int data
;

int front, rear;

}*pqueue,lqueue;

//置空队列

int empty(pqueue p)

{

p->front = p->rear = 0;

printf("队列已经置空!\n");

return TRUE;

}

//判断队列是否为空

int isempty(pqueue p)

{

if (p->front == p->rear)

{

printf("队列为空!\n");

return FALSE;

}

else

printf("对列不为空!\n");

return TRUE;

}

//入队操作

int enqueue(pqueue p)

{

if ((p->rear + 1) % N == p->front)

{

printf("队列已满!\n");

return FALSE;

}

else

{

p->rear = p->rear + 1;

printf("请输入你要入队的数据!\n");

scanf("%d",&p->data[p->rear]);

return TRUE;

}

}

//出队操作

int delqueue(pqueue p)

{

if (p->front == p->rear)

{

printf("队列为空!\n");

return FALSE;

}

else

{

p->front = p->front + 1;

printf("出队列的数据是:%d\n",p->data[p->front]);

return TRUE;

}

}

//遍历队列

int traverse(pqueue p)

{

if (p->front == p->rear)

{

printf("队列为空!\n");

return FALSE;

}

else{

printf("现在队列中的元素为:\n");

for (int i = p->front+1; i <= p->rear; i++)

{

printf("%d ", p->data[i]);

}

printf("\n");

return TRUE;

}

}

//计算队列长度

int sumqueue(pqueue p)

{

int sum=0;

for (int i = p->front + 1; i <= p->rear;i++)

{

sum++;

}

printf("现在的队列长度为:%d\n",sum);

return TRUE;

}

//主函数

int main()

{

lqueue p;

int n;

do{

printf("************************\n");

printf("1.置空队列\n2.判断队列是否为空\n3.入队操作\n4.出队操作\n5.遍历队列\n6.计算队列的长度\n7.退出程序\n");

printf("************************\n");

printf("请输入你的选择:\n");

scanf("%d",&n);

switch (n){

case 1:

empty(&p);

break;

case 2:

isempty(&p);

break;

case 3:

enqueue(&p);

break;

case 4:

delqueue(&p);

break;

case 5:

traverse(&p);

break;

case 6:

sumqueue(&p);

break;

case 7:

break;

default:

printf("请输入正确的选择!\n");

}

} while (n!=7);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: