分队列c语言程序,[原创]非常漂亮的队列演示程序(C语言版)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#define MAX 10 /*规定队列中可存放的字节数,[1~254]*/

typedef enum{FALSE,TRUE} boolean;

boolean SaveNumber(

unsigned char *q,

unsigned char *front,

unsigned char *rear,

unsigned char *ch);

boolean DelNumber(

unsigned char *q,

unsigned char *front,

unsigned char *rear,

unsigned char *ch);

int main(){

unsigned char Queue[MAX+1],front=0,rear=1,c;

char ch;

boolean (*pntr[2])(

unsigned char *,unsigned char *,

unsigned char *,unsigned char *)={SaveNumber,DelNumber};

const char *Message[]={

/*0*/"Number %d saved successfully.",

/*1*/"\nGet %u from the Queue.\n",

/*2*/"Failed.",

/*3*/"[1]Save a number into Queue.",

/*4*/"[2]Get and Delete a number from Queue.",

/*5*/"[3]Exit.",

};

do{

clrscr();

printf("%s\n",Message[3]);

printf("%s\n",Message[4]);

printf("%s\n",Message[5]);

printf("Select:");

switch(ch=getche()){

int i;

case '1':

printf("\nInput a number between 0 and 255:");

scanf("%d",&i);

c=i;

case '2':

ch-=49;

break;

case '3':

return(0);

default:continue;

}

if(pntr[ch](Queue,&front,&rear,&c))printf(Message[ch],c);

else printf(Message[2]);

printf("\nPress any key...");

getch();

}while(1);

}

boolean SaveNumber(q,front,rear,ch)

unsigned char *q,*front,*rear,*ch;

{

if(*front==*rear){

printf("Sorry, the Queue is full.\n");

return(FALSE);

}else{

q[*rear]=*ch;

*rear=(*rear+1)%(MAX+1);

return(TRUE);

}

}

boolean DelNumber(q,front,rear,ch)

unsigned char *q,*front,*rear,*ch;

{

if((*front+1)%(MAX+1)==*rear){

printf("\nSorry, the Queue is empty.\n");

return(FALSE);

}else{

*front=(*front+1)%(MAX+1);

*ch=q[*front];

return(TRUE);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值