? 队列结构是一种常见的数据结构,从数据的逻辑结构来看是线性结构,从存储结构来说分顺序和链式存储。且队列的两个基本操作是入队列和出队列,在队头进行出队列操作,在队尾进行入队列操作.
?
?队列中操作的对象:
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