数据结构之循环队列
来源:互联网 发布:wap淘宝是什么访客 编辑:程序博客网 时间:2024/05/22 11:36
数据结构之循环队列。
压入元素:
rear=(rear+1)%maxsize;
删除元素:
front=(front+1)%maxsize;
判断队空:
front==rear;
判断队满:
front==(rear+1)%maxsize;
队中元素的个数:
num=(rear-front+maxsize)%maxsize;
代码:
#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#define maxsize 20#define ElemType inttypedef struct{ ElemType linklist[maxsize]; int rear; int front;}list;list s;//--------------------向队列中压入元素----------------void enElem(list* l,int x ){ if(l->front==(l->rear+1)%maxsize) { printf("链表已满!\n"); exit(0); } l->linklist[l->rear]=x; l->rear=(l->rear+1)%maxsize;}//--------------------删除队列中的元素----------------int deElem(list* l){ if(l->front==l->rear) { printf("空队列不能删除元素!\n"); exit(0); } int x=0; x=l->linklist[l->front]; l->front=(l->front+1)%maxsize; //printf("%d ",l->front); return x;}//-------------------判断循环队列中的个数--------------int GetNumber(list* l){ int x=0; x=(l->rear-l->front+maxsize)%maxsize; return x;}void print(list* l){ int i=0; for(i=0;i<maxsize;i++) { printf("%d ",l->linklist[i]); } printf("\n");}int main(){ s.front=0; s.rear=0; int i=0; printf("填满循环队列\n"); for(i=1;i<maxsize;i++) enElem(&s,i); print(&s); int j=0; j=GetNumber(&s); printf("当前循环队列中的元素个数为%d.\n",j); printf("删除一次队列中元素\n"); i=deElem(&s); printf("删除了队列元素%d.\n",i); j=GetNumber(&s); printf("当前循环队列中的元素个数为%d.\n",j);}
运行结果:
阅读全文
0 0
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构 之 循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 复习数据结构之循环队列
- 数据结构之循环队列操作
- 数据结构之顺序循环队列
- 数据结构系列之循环队列
- 数据结构之顺序队列(循环队列)
- 【数据结构】队列-循环队列
- C语言基础练习10
- 欢迎使用CSDN-markdown编辑器
- Jquery.DataTable的基本使用
- Js制作简单的选项卡
- PreparedStatement与Statement的区别及优势
- 数据结构之循环队列
- 中文乱码问题
- 习题4.1
- CodeForces 315B(线段树+区间更新)
- 安卓面经之未解决问题
- PyQt5学习教程11:几种signal与slot处理事件的方法
- 【个人模板】图的广度,深度优先遍历
- Android中Toast的基础用法
- nodejs之pool连接池