_DataStructure_C_Impl:顺序队列
2015-08-05 02:51
323 查看
//_DataStructure_C_Impl:顺序队列 #include<stdio.h> #include<stdlib.h> #define QueueSize 50 typedef char DataType; typedef struct Squeue{ //顺序队列类型定义 DataType queue[QueueSize]; int front,rear; //队头指针和队尾指针 }SeqQueue; //将顺序队列初始化为空队列只需要把队头指针和队尾指针同时置为0 void InitQueue(SeqQueue *SQ){ SQ->front=SQ->rear=0; //把队头指针和队尾指针同时置为0 } //判断队列是否为空,队列为空返回1,否则返回0 int QueueEmpty(SeqQueue SQ){ if(SQ.front==SQ.rear) return 1; else return 0; } //将元素x插入到顺序队列SQ中,插入成功返回1,否则返回0 int EnterQueue(SeqQueue *SQ,DataType x){ if(SQ->rear==QueueSize) return 0; SQ->queue[SQ->rear]=x; SQ->rear+=1; return 1; } int EnterSCQueue(SeqQueue *SCQ,DataType e){ if(SCQ->front==(SCQ->rear+1)%QueueSize) return 0; SCQ->queue[SCQ->rear]=e; SCQ->rear=(SCQ->rear+1)%QueueSize; return 1; } //删除顺序队列中的队头元素,并将该元素赋值给e,删除成功返回1,否则返回0 int DeleteQueue(SeqQueue *SQ,DataType *e){ if(SQ->front==SQ->rear) return 0; else{ *e=SQ->queue[SQ->front]; SQ->front+=1; return 1; } } int DeleteSCQueue(SeqQueue *SCQ,DataType *e){ if(SCQ->front==SCQ->rear) return 0; else{ *e=SCQ->queue[SCQ->front]; SCQ->front=(SCQ->front+1)%QueueSize; return 1; } } int GetHead(SeqQueue SCQ,DataType *e){ if(SCQ.front==SCQ.rear) return 0; else{ *e=SCQ.queue[SCQ.front]; return 1; } } void ClearQueue(SeqQueue *SCQ){ SCQ->front=SCQ->rear=0; } void main(){ SeqQueue Q; char str[]="ABCDEFGH"; int i,length=8; char x; InitQueue(&Q); for(i=0;i<length;i++){ EnterQueue(&Q,str[i]); } DeleteQueue(&Q,&x); printf("出队列的元素为:%c\n",x); //显示输出出队列的元素 printf("顺序队列中的元素为:"); if(!QueueEmpty(Q)){ for(i=Q.front;i<Q.rear;i++) printf("%c",Q.queue[i]); } printf("\n"); system("pause"); }
相关文章推荐
- Python的MySQLdb模块安装,连接,操作,增删改
- Python的MySQLdb模块安装,连接,操作,增删改
- _DataStructure_C_Impl:后缀表达式
- C语言之文件操作02——输出文本文件中的内容显示在屏幕上
- [Leetcode 216, Medium] Combination sum III
- SQL语句及多表设计与查询
- python异常处理try,except,else,finally,raise
- 2015计算机类保研夏令营感悟2(中科院计算机网络信息中心)
- python异常处理try,except,else,finally,raise
- C语言之文件操作01——打印1000以内的质数到文件
- 使用jQuery的9个误区
- Nginx Location配置总结及基础最佳实践
- nginx禁止访问某个后缀名的文件
- 备忘录模式
- Python 中的“二维”字典 (two-dimension dictionary)
- 点滴拾遗 - 自定义 Format 控制 String.Format 行为
- 稳定项目内存 - 基准测试
- MIME [转自百度百科]
- Leetcode #95 Unique Binary Search Trees II
- 为什么要使用Base64?