首页 > 其他 > 详细

队列结构

时间:2015-12-01 02:05:59      阅读:223      评论:0      收藏:0      [点我收藏+]

? 队列结构是一种常见的数据结构,从数据的逻辑结构来看是线性结构,从存储结构来说分顺序和链式存储。且队列的两个基本操作是入队列和出队列,在队头进行出队列操作,在队尾进行入队列操作.

?

?队列中操作的对象:

public class DATA4 {
	String name;
	int age;
}

?队列的基本操作:

?

public class SQType {
   
	static final int QUEUELEN=15;
	DATA4[] data=new DATA4[QUEUELEN];//队列数组
	int head;//队列头
	int tail;//队列尾
	
	/**
	 * 初始化队列
	 */
	SQType SQTypeInit(){
		SQType q;
		if((q=new SQType())!=null){
			q.head=0;//设置队头
			q.tail=0;//设置队尾
			return q;
		}else{
			return null;
		}
	}
	
	/**
	 * 判断空队列
	 */
	int SQTypeEmpty(SQType q){ 
		int temp=0;
		if(q.head==q.tail)
			temp=1;
			return temp;
	}
	
	/**
	 * 判断满队列
	 */
	int SQTypeIsFull(SQType q){
		int temp=0;
		if(q.tail==QUEUELEN)
			temp=1;
			return temp;
	}
	
	/**
	 * 清空队列
	 */
	void SQTypeClear(SQType q){
		q.head=0; //设置对头
		q.tail=0;//设置队尾
	}
	
	/**
	 * 释放内存
	 */
	void SQTypeFree(SQType q){
		if(q!=null){
			q=null;
		}
	}
	
	/**
	 * 入队列
	 */
	int InSQType(SQType q,DATA4 data){
		if(q.head==QUEUELEN){
			System.out.println("队列已经满了,操作失败");
			return 0;
		}else{
			q.data[q.tail++]=data;
			return 1;
		}
	}
	
	/**
	 * 出队列
	 */
	DATA4 OutSQType(SQType q){
		if(q.head==q.tail){
			System.out.println("队列已经为空");
			System.exit(0);
		}else{
			return q.data[q.head++];
		}
		return null;
	}
	
	/**
	 * 读取结点
	 */
	DATA4 PeekSQType(SQType q){
		if(SQTypeEmpty(q)==1){
			System.out.println("空队列");
			return null;
		}else{
			return q.data[q.head];
		}
	}
	
	/**
	 * 计算队列长度
	 */
	int SQTypeLen(SQType q){
		int temp;
		temp=q.tail-q.head;
		return temp;
	}
}

?

?看看就明白了,也就这么几句.

?从这个代码学到了:

?1.就是队列的一些基本操作

?2.++a,a++。用的确实巧妙,如果是我自己,应该不会那么写的

?3.数据情况、释放内存

?

?越来越淡静了...在想想这段代码,确实写的好.

?

队列结构

原文:http://cb123456.iteye.com/blog/2260192

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!