静态数组实现的队列
2007-01-01 13:10
453 查看
/*_############################################################################
_##
_## 静态数组实现的队列
_## Author: xwlee
_## Time: 2006.12.31
_## Chang'an University
_## Development condition: win2003 Server+VC6.0
_##
_## static_array.cpp 文件
_##########################################################################*/
#include "stack.h"
#include <stdio.h>
#define QUEUE_SIZE 5 // 队列中元素的最大数量
//#define ARRAY_SIZE ( QUEUE_SIZE ) // 数组的长度
#define ARRAY_SIZE ( QUEUE_SIZE + 1) // 数组的长度 (方法2)
// 用于存储队列元素的数组和指向队列头和尾的指针
static QUEUE_TYPE queue[ ARRAY_SIZE ];
static size_t front = 1;
static size_t rear = 0;
static size_t qnumber = 0; // 引入新变量,记录队列中的元素数量(方法1)
// create_stack函数
int create_stack( size_t size )
{
return 1;
}
// destroy_stack函数
int destroy_stack( void )
{
return 1;
}
// insert函数
void myinsert( QUEUE_TYPE value )
{
if( is_full() )
{
printf("queue is already full, insert is false./n");
exit(0);
}
rear = ( rear + 1 ) % ARRAY_SIZE;
queue[ rear ] = value;
printf("rear=%d", rear);
qnumber++; // 引入新变量使用.(方法1)
}
// delete函数
void mydelete( void )
{
if( is_empty() ) // 若队列已空,条件成立.
{
printf("queue already empty, delete is false./n");
exit(0);
}
front = ( front + 1 ) % ARRAY_SIZE;
printf("front=%d", front);
qnumber--; // 引入新变量使用.(方法1)
}
// first函数
QUEUE_TYPE first( void )
{
if( is_empty() ) // 若队列已空,条件成立.
{
printf("queue already empty./n");
exit(0);
}
return queue[ front ];
}
// is_empty函数
int is_empty( void )
{
return ( rear +1 ) % ARRAY_SIZE == front;
//return qnumber == 0; // 引入新变量使用.
}
// is_full函数
int is_full( void )
{
return ( rear +2 ) % ARRAY_SIZE == front;
//return qnumber == ARRAY_SIZE; // 引入新变量使用.
}
_##
_## 静态数组实现的队列
_## Author: xwlee
_## Time: 2006.12.31
_## Chang'an University
_## Development condition: win2003 Server+VC6.0
_##
_## static_array.cpp 文件
_##########################################################################*/
#include "stack.h"
#include <stdio.h>
#define QUEUE_SIZE 5 // 队列中元素的最大数量
//#define ARRAY_SIZE ( QUEUE_SIZE ) // 数组的长度
#define ARRAY_SIZE ( QUEUE_SIZE + 1) // 数组的长度 (方法2)
// 用于存储队列元素的数组和指向队列头和尾的指针
static QUEUE_TYPE queue[ ARRAY_SIZE ];
static size_t front = 1;
static size_t rear = 0;
static size_t qnumber = 0; // 引入新变量,记录队列中的元素数量(方法1)
// create_stack函数
int create_stack( size_t size )
{
return 1;
}
// destroy_stack函数
int destroy_stack( void )
{
return 1;
}
// insert函数
void myinsert( QUEUE_TYPE value )
{
if( is_full() )
{
printf("queue is already full, insert is false./n");
exit(0);
}
rear = ( rear + 1 ) % ARRAY_SIZE;
queue[ rear ] = value;
printf("rear=%d", rear);
qnumber++; // 引入新变量使用.(方法1)
}
// delete函数
void mydelete( void )
{
if( is_empty() ) // 若队列已空,条件成立.
{
printf("queue already empty, delete is false./n");
exit(0);
}
front = ( front + 1 ) % ARRAY_SIZE;
printf("front=%d", front);
qnumber--; // 引入新变量使用.(方法1)
}
// first函数
QUEUE_TYPE first( void )
{
if( is_empty() ) // 若队列已空,条件成立.
{
printf("queue already empty./n");
exit(0);
}
return queue[ front ];
}
// is_empty函数
int is_empty( void )
{
return ( rear +1 ) % ARRAY_SIZE == front;
//return qnumber == 0; // 引入新变量使用.
}
// is_full函数
int is_full( void )
{
return ( rear +2 ) % ARRAY_SIZE == front;
//return qnumber == ARRAY_SIZE; // 引入新变量使用.
}
相关文章推荐
- 基础知识--数组、栈、队列的静态、动态和链式实现
- c语言数组方式实现静态循环队列
- 静态数组实现队列(C语言)
- "《算法导论》之‘队列’":队列的三种实现(静态数组、动态数组及指针)
- C++用数组实现的静态队列
- 用数组实现队列--静态队列
- 静态数组实现循环队列
- 用数组实现 优先级队列
- 队列的C语言实现(循环数组结构)
- 队列的一种实现(数组)
- 基于数组和节点方式的队列的实现
- c语言数据结构实现-数组队列/环形队列
- Java数组实现循环队列
- 循环队列--数组实现
- 队列--数组实现
- 静态数组实现线性表
- javascript中利用数组实现的循环队列代码
- 队列_数组实现 [循环队列]
- 单数组实现双端队列
- 队列的基本操作(用数组实现)