首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

行列的线性实现

2012-10-06 
队列的线性实现继上篇文章 直接贴代码#include iostreamusing namespace std#define ElemType intconst

队列的线性实现
继上篇文章 直接贴代码

#include <iostream>using namespace std;#define ElemType intconst int INIT_SIZE = 100;const int INCREMENT_SIZE = 10;//缺点:浪费空间class Queue{private:int front;int rear;int queue_total_size;ElemType *data;public:bool InitQueue(); //构造一个空队列void DestoryQueue(); //销毁队列void ClearQueue(); //清空队列bool QueueEmpty(); //队列是否为空int QueueLength(); //队列长度void GetHead(ElemType &e); //获取队头元素bool EnQueue(ElemType e); //把e插入到队尾bool DeQueue(ElemType &e); //如果队列不为空,删除队头元素,用e返回其值};//初始化队列bool Queue::InitQueue(){this->front = this->rear = 0;this->data = (ElemType *)malloc(sizeof(ElemType) * INIT_SIZE);if(!this->data)return false;this->queue_total_size = INIT_SIZE;return true;}//销毁队列void Queue::DestoryQueue(){delete this->data;}//情况队列void Queue::ClearQueue(){this->rear = this->front;}//队列是否为空bool Queue::QueueEmpty(){return this->rear == this->front;}//获取队列长度int Queue::QueueLength(){return rear;}//获取队头元素void Queue::GetHead(ElemType &e){e = this->data[front];}//进队列bool Queue::EnQueue(ElemType e){if(this->rear < this->queue_total_size){this->data = (ElemType *)realloc(this->data, sizeof(ElemType) * (this->queue_total_size + INCREMENT_SIZE));if(!this->data)return false;this->queue_total_size += INCREMENT_SIZE;}this->data[rear++] = e;return true;}//出队列bool Queue::DeQueue(ElemType &e){e = this->data[front];front++;return true;}int main(){int e;Queue queue;queue.InitQueue();queue.EnQueue(3);queue.EnQueue(4);queue.EnQueue(5);queue.DeQueue(e);cout<<e;return 0;}

热点排行