进位制转换【数据结构】

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define QueueSize 100
typedef char DataType;
typedef struct cirqueue
{
 DataType data[QueueSize];
 int front;
 int rear;             

}CirQueue;
CirQueue *q;
//置队空
void lnitqueue(CirQueue *q)
{
 q->front=q->rear=0;
 
}
//判队空
int queueempty(CirQueue *q)
{
 return  q->front==q->rear;
}
//判队满
int queuefull(CirQueue *q)
{
 return q->front==q->rear+1;
}
//入队
void enqueue(CirQueue *q,DataType x)
{

 if(queuefull(q))
 {puts("??");exit(0);}

 q->data[q->rear]=x; 
 q->rear=(q->rear+1)%QueueSize;
}
//出队
DataType dequeue(CirQueue *q)
{
 DataType temp;
 if(queueempty(q))
 {puts("??");exit(0);}
 temp=q->data[q->front];
 q->front=(q->front+1)%QueueSize;
 return temp;

}
//取队头元素
DataType queuefront(CirQueue *q)
{
 if(queueempty(q))
 {puts("??");exit(0);}
 return q->data[q->front];
}
void menu()
{
 printf("/n/t/t*/t 1.  置队空/t/t *"); 
 printf("/n/t/t*/t 2.  判队空/t/t *");
 printf("/n/t/t*/t 3.  判队满/t/t *");
 printf("/n/t/t*/t 4.  进  队/t/t *");
 printf("/n/t/t*/t 5.  退  队/t/t *");
 printf("/n/t/t*/t 6.取队头元素/t/t *");
 printf("/n/t/t*/t 7.退出  系统/t/t */n");
}
void main()
{
 DataType x;
 char ch;
 q=(CirQueue *)malloc(sizeof(CirQueue));
    lnitqueue(q);
    while(1)
 {
  
  system("cls");
  menu();
  printf("按照提示操作:");
  ch=getchar();
  switch(ch)
  {
  case '1':lnitqueue(q);break;
  case '2':if(queueempty(q))
      printf("队空");
   else
    getch();break;
   
  case '3':if(queuefull(q)!=0)
      printf("队满");
   else
    getch();break;
  case '4': printf("请输入入队元素:");
   getchar(); scanf("%c",&x);
   enqueue(q,x);break;
  case '5':printf("退队元素为%c",dequeue(q));getch();break;
  case '6':printf("取队头元素为%c",queuefront(q));getch();break;
  case '7':printf("欢迎使用,谢谢!/n");exit(0);
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值