顺序队列的入队,出队,遍历队列计算队列的长度
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;
}
#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;
}
相关文章推荐
- 链队列的初始化,入队,出队,计算队的长度,遍历链队销毁队列
- 队列的创建、入队、出队、打印、统计队列长度
- 队列的入队,出队,测长度,打印c++代码
- 队列的入队,出队,测长度,打印c++代码
- C语言实现顺序队列的初始化、入队、出队等操作(三)
- 顺序循环队列基本操作(入队,出队,清空,销毁,历遍)
- 队列的入队,出队,测长度,打印c++代码
- 链队列和循环队列的表示与实现-初始化、判空、求长、入队、出队、遍历、求头、求尾、清队、毁队
- 队列的入队,出队,测长度,打印c++代码
- 队列的创建,入队,出队,遍历
- c之队列相关操作------初始化,入队,出队,队列清空,销毁,遍历
- 编程实现顺序队列的入队操作和出队操作,并将出队结果输出
- 队列的入队,出队,测长度,打印c++代码
- 顺序队列的创建、初始化、判断空、入队、出队、读取队头元素、置空、求队长操作
- 循环顺序队列(初始化、入队、出队、判空)
- 队列的入队,出队,测长度,打印c++代码
- 队列中入队,出队,遍历算法代码演示
- 实验C—3 顺序队列基本操作入队与出队
- 队列的入队,出队,测长度,打印c++代码
- 数据结构 c语言实现顺序队列(输数字入队,字符出队)