习题3.25 链表和数组对队列例程实现
2015-07-14 17:54
369 查看
//循环数组 #define MaxSize 100 struct Queue; typedef struct Queue * PtrToQ; struct Queue{ ElementType *Array; int front; int rear; }; PtrToQ CreateQ( int Size ) { PtrToQ Q; Q = malloc( sizeof( struct Queue ) ); Q->Array = malloc( sizeof( ElementType ) * Size ); Q->front = Q->rear = 0; return Q; } int IsFull( PtrToQ Q ) { return ( Q->rear + 1 ) % MaxSize == Q->front; } void AddQ( ElementType X, PtrToQ Q ) { if( !IsFull( Q ) ){ Q->rear = ( Q->rear + 1 ) % MaxSize; Q->Array[ Q->rear ] = X; } else Error("full") } int IsEmpty( PtrToQ Q ) { return Q->rear == Q->front; } ElementType DeleteQ( PtrToQ Q ) { if( !IsEmpty( Q ) ) { Q->front = ( Q->front + 1 ) % MaxSize; return Q->front->ele; } else Error(); }
View Code
在循环数组这一栏,实际上front所指向的地方实际上是没有意义但要保留的,为空
相关文章推荐
- linux下 切换双显卡调整屏幕亮度(简单两条命令搞定)
- ruby里的坑
- hdu 3714 Error Curves
- C++ 语言的 15 个晦涩特性
- SpringMVC详细示例
- Spring MVC 的 multipartResolver 不能同iWebOffice2006 共同使用
- leetcode - Linked List Cycle II
- 浏览器是怎样工作的:渲染引擎,HTML解析
- Android中日期与时间设置控件用法实例
- Python下opencv使用笔记(九)(图像直方图)
- golang(4):编写socket服务,简单支持命令
- [ActionSprit 3.0] FMS直播
- windows 文件或文件夹权限问题
- hdu 1710 Binary Tree Traversals
- R语言学习(1)线性模型
- textview根据字数自动调高度,cell高度自动调节
- DOM
- 共谋节点两个单列表
- MyEclipse 8.6中的Drools安装配置
- Linux之VI常用命令