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

来源:互联网 发布:淘宝仓库宝贝多久删除 编辑:程序博客网 时间:2024/05/01 04:34
#include "stdio.h"
#include "stdlib.h"
#define N 100
#define TRUE 1
#define FALSE 0
typedef struct queue{
int data[N];
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;
}

0 0
原创粉丝点击