⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seqpqueue.java

📁 基本的数据结构的java代码
💻 JAVA
字号:
public class SeqPQueue{
	static final int defaultSize = 10;
	int front;									//队头
	int rear; 									//队尾
	int count;									//计数器
	int maxSize;									//元素最大个数
	Element[] data;								//数据元素
	
	public SeqPQueue(){							//无参构造函数
		this.initiate(10);
	}
	
	public SeqPQueue(int sz){ 					//带参构造函数
		this.initiate(sz);
	}
	
	private void initiate(int sz){				//初始化
		maxSize = sz;
		front = rear = 0;
		count = 0;
		data = new Element[sz];
	}
	
	public void append(Object obj) throws Exception{		//插入
		if(count >= maxSize){
			throw new Exception("队列已满!");
		}
		data[rear] = (Element)obj;				//插在队尾
		rear = rear + 1;		
		count ++;
	}
	
	public Element delete() throws Exception{		//删除
		if(count == 0){
			throw new Exception("队列已空!");
		}
		
		//寻找优先级最小的数据元素,且保存在临时变量min中
		Element min = data[0];	
		int minIndex = 0;		
		for(int i = 0; i < count; i ++){
			if(data[i].getPriority() < min.getPriority()){
				min = data[i];
				minIndex = i;
			}
		}
		
		//从优先级最小数据元素的下标minIndex+1开始至count依次移位
		for (int i = minIndex + 1; i < count; i++){
			data[i - 1] = data[i];
		}
		rear = rear - 1;
		count --;
		return min;						//返回优先级最小的数据元素
	}
	
	public Object getFront() throws Exception{		//取队头数据元素
		if(count == 0){
			throw new Exception("队列已空!");
		}
		
		//寻找优先级最小的数据元素,且保存在临时变量min中
		Element min = data[0];
		int minIndex = 0;
		for(int i = 0; i < count; i ++){
			if(data[i].getPriority() < min.getPriority()){
				min = data[i];
				minIndex = i;
			}
		}
		return min; 						//返回优先级最小的数据元素
	}
	
	public boolean notEmpty(){						//非空否
		return count != 0;
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -