c语言数据结构:用标志位实现循环队列
2018-06-18 03:58:26来源:未知 阅读 ()
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 #define MAXSIZE 10//定义队列长度 5 6 static int flag=0;//定义标志位 7 8 typedef struct { 9 int *base; 10 int front; 11 int rear; 12 }SqQueue;//创建结构体 13 14 int InitQueue(SqQueue &Q){ 15 Q.base=(int*)malloc(MAXSIZE*sizeof(int)); 16 if(!Q.base) 17 return 0; 18 else{ 19 Q.front=Q.rear=0; 20 return 1; 21 } 22 }//创建空链表 23 24 25 int IsEmpety(SqQueue &Q){ 26 if(flag==0&&Q.front==Q.rear){ 27 printf("队列为空\n"); 28 return 0; 29 } 30 else 31 return 1; 32 33 }//判断是否为空 34 35 int IsFull(SqQueue &Q){ 36 if(flag==1&&Q.front==Q.rear){ 37 printf("队列已满\n"); 38 return 0; 39 } 40 else 41 return 1; 42 }//判断是否已满 43 44 void AddQueue(SqQueue &Q){ 45 if(IsFull(Q)==1){ 46 int e; 47 printf("请输入元素:\n"); 48 scanf("%d",&e); 49 Q.base[Q.rear]=e; 50 Q.rear=(Q.rear+1)%MAXSIZE; 51 flag=1; 52 } 53 }//添加元素 54 55 void DeleteQueue(SqQueue &Q){ 56 if(IsEmpety(Q)==1){ 57 int e; 58 e=Q.base[Q.front]; 59 Q.front=(Q.front+1)%MAXSIZE; 60 flag=0; 61 printf("%d\n",e); 62 } 63 }//删减元素 64 65 void Action(SqQueue &Q){ 66 printf("1.入队\n"); 67 printf("2.使队头元素出队,并返回它的值\n"); 68 printf("3.退出\n"); 69 int a; 70 scanf("%d",&a); 71 switch(a) 72 { 73 case 1: 74 75 AddQueue(Q); 76 break; 77 case 2: 78 79 DeleteQueue(Q); 80 break; 81 case 3: 82 exit(0); 83 default: 84 printf("输入不合法,请重新输入\n"); 85 86 } 87 Action(Q); 88 }//操作选项 89 90 int main(){ 91 SqQueue Q; 92 if(InitQueue(Q)) 93 printf("创建成功。\n"); 94 else{ 95 printf("创建失败。"); 96 system("pause"); 97 return 0; 98 } 99 100 Action(Q); 101 102 system("pause"); 103 free(Q.base); 104 return 0; 105 106 107 }//主函数
虽然用标志位实现了,可是将int型数组换为char型数组时会出现错误,在此保留疑问,待解决。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C语言程序结构 2020-05-31
- 数据结构—链表 2020-05-29
- 图 2020-05-02
- 每日干货丨C++语言主流开发工具推荐! 2020-04-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash