首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

行列的初步理解

2012-10-31 
队列的初步理解队列队列数据顺序是先进先出,后进后出.队列添加数据的方式很特别,传统意义上的队列,删除或

队列的初步理解

队列


队列数据顺序是先进先出,后进后出.
队列添加数据的方式很特别,传统意义上的队列,删除或者添加数据时,后面或者前面的所有的数据会
依次移动一位。但是这样效率会很低。所以队列的数据排列上会在数组的前端空出几个缓冲位置,这样当
操作队列的时候只需要移动指针,而不需要操作整个队列。

?

class Queue{private int maxSize;private long[] queArray;private int front;private int rear;private int nItems;public Queue(int s){maxSize = s;queArray = new long[maxSize];front = 1;rear = -1;nItems = 0;}//像队列中插入新的数据public void insert(long j){//判断队列是否已满if(!isFull()){/**如果队列尾部已到数组界,则将尾部的指针移至数组开始端的空位置。*  称为“这段的序列”。**/if(rear == maxSize-1){rear = -1;queArray[++rear] = j;nItems++;}}}//删除,队列的删除是先删除最先进入队列的数据,也就是队列的头数据//这里删除操作和栈的操作是相同的,数据并没有真正的删除,//只是将队列头指针移动,数据还是存在的。public long remove(){//移动指针long temp = queArray[front++];if(front == maxSize){front = 0;}//数据数量nItems--;return temp;}//返回队列头指针指向的数据public long peekFornt(){return queArray[front];}//判断是否为空public boolean isEmpty(){return nItems == 0;}//是否已满public boolean isFull(){return nItems == maxSize;}public int size(){return nItems;}}

?

热点排行