制作一个菜单,用队列实现基本操作
2017-10-26 12:29
411 查看
#include<stdio.h>
#include <windows.h>
#include<string.h>
#define Maxsize 10
int data[10]={0};
int front=0;
int rear=0;
int count=0;
void Menu();
int Queuein();
int Queueout();
int Traverse();
int Empity();
int Queuefront();
void Menu()
{
printf("环队基本功能菜单\n");
printf("==========\n");
printf("1数据进队\n");
printf("2数据出队\n");
printf("3显示数据(遍历)\n");
printf("4判断队空\n");
printf("5读取队头\n");
printf("6求链队长度\n");
printf("7结束程序\n");
printf("==========\n");
}
int Queuein()
{
if(count>=Maxsize)
{
printf("环队数据已经满了");
return 0;
}
printf("请输入你要入队的数据:");
scanf("%d",&data[rear]);
printf("进队操作成功!\n");
rear=(rear+1)%Maxsize;
count++;
return 1;
}
int Queueout()
{
int num,i;
if(count==0)
{
printf("队中数据为空!\n");
return 0;
}
printf("请输入要出队列的次数:");
scanf("%d",&num);
if(num>count)
{
printf("输出的次数大于队列数!\n");
return 0;
}
printf("出队的数据为:");
for(i=0;i<num;i++)
{
printf(" %2d ",data[front]);
front=(front+1)%Maxsize;
count--;
}
printf("\n");
return 0;
}
int Traverse()
{
int i;
if(count==0)
{
printf("队列内为空!\n");
return 0;
}
printf("环队数据为:");
for(i=front;i<count+front;i++)
{
printf("%3d",data[i%Maxsize]);
}
printf("\n");
return 1;
}
int Queuefront()
{
if(count==0)
{
printf("环队为空\n");
return 0;
}
else
printf("队头数据为:%d\n",data[front]);
return 1;
}
int Empity()
{
if(count<=0)
{
printf("环队为空!\n");
return 0;
}
printf("环队不为空!\n");
return 1;
}
int main()
{
int selection;
while(1)
{
Menu();
printf("请输入您的选择:\n");
scanf("%d",&selection);
fflush(stdin);
switch(selection)
{
case 1:Queuein();break;
case 2:Queueout();break;
case 3:Traverse();break;
case 4:Empity();break;
case 5:Queuefront();break;
case 6:printf("环队长度为:%d\n",count);break;
case 7:exit(0);break;
default:printf("输入错误\n");break;
}
system("pause");
system("cls");
}
return 0;
}
#include <windows.h>
#include<string.h>
#define Maxsize 10
int data[10]={0};
int front=0;
int rear=0;
int count=0;
void Menu();
int Queuein();
int Queueout();
int Traverse();
int Empity();
int Queuefront();
void Menu()
{
printf("环队基本功能菜单\n");
printf("==========\n");
printf("1数据进队\n");
printf("2数据出队\n");
printf("3显示数据(遍历)\n");
printf("4判断队空\n");
printf("5读取队头\n");
printf("6求链队长度\n");
printf("7结束程序\n");
printf("==========\n");
}
int Queuein()
{
if(count>=Maxsize)
{
printf("环队数据已经满了");
return 0;
}
printf("请输入你要入队的数据:");
scanf("%d",&data[rear]);
printf("进队操作成功!\n");
rear=(rear+1)%Maxsize;
count++;
return 1;
}
int Queueout()
{
int num,i;
if(count==0)
{
printf("队中数据为空!\n");
return 0;
}
printf("请输入要出队列的次数:");
scanf("%d",&num);
if(num>count)
{
printf("输出的次数大于队列数!\n");
return 0;
}
printf("出队的数据为:");
for(i=0;i<num;i++)
{
printf(" %2d ",data[front]);
front=(front+1)%Maxsize;
count--;
}
printf("\n");
return 0;
}
int Traverse()
{
int i;
if(count==0)
{
printf("队列内为空!\n");
return 0;
}
printf("环队数据为:");
for(i=front;i<count+front;i++)
{
printf("%3d",data[i%Maxsize]);
}
printf("\n");
return 1;
}
int Queuefront()
{
if(count==0)
{
printf("环队为空\n");
return 0;
}
else
printf("队头数据为:%d\n",data[front]);
return 1;
}
int Empity()
{
if(count<=0)
{
printf("环队为空!\n");
return 0;
}
printf("环队不为空!\n");
return 1;
}
int main()
{
int selection;
while(1)
{
Menu();
printf("请输入您的选择:\n");
scanf("%d",&selection);
fflush(stdin);
switch(selection)
{
case 1:Queuein();break;
case 2:Queueout();break;
case 3:Traverse();break;
case 4:Empity();break;
case 5:Queuefront();break;
case 6:printf("环队长度为:%d\n",count);break;
case 7:exit(0);break;
default:printf("输入错误\n");break;
}
system("pause");
system("cls");
}
return 0;
}
相关文章推荐
- 制作一个菜单 ,用栈实现一些基本操作
- 二、 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)
- 数据结构 编写一个类,用两个栈实现队列,支持队列的基本操作(add 、poll、peek)
- 试用多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作:插入,删除,测长等。
- MFC通过获取菜单句柄,实现菜单的基本操作
- c++ 队列基本操作实现
- bo3-4.c 用单链表的基本操作实现链队列(存储结构由c3-2.h定义)的基本操作(9个)
- 如何用两个栈来实现一个队列,并分析有关队列操作的运行时间。
- 链队的基本操作实现及约瑟夫环问题的队列解法
- 数据结构中队列的基本操作实现
- 二叉树遍历非递归算法所用到的栈以及层次遍历所用到的队列的基本操作算法的实现
- C#实现队列的基本操作
- 用Canvas制作一个简单的操作菜单
- 用char*实现的一个完整的类,包含类的基本操作:一般构造、拷贝构造、赋值转换、重载 > >,< <
- 栈和队列的基本操作实现
- (C语言版)栈和队列(一)——实现链式栈和链式队列的基本操作以及遇到的问题
- 编写一个程序,实现顺序环形队列的各种基本运算。
- 【队列】链式结构实现队列的基本操作
- C++队列实现的基本操作
- 顺序队列(循环队列)基本操作实现 C语言