国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java基礎-如何編寫一個JAVA的隊列類

2019-11-17 06:34:38
字體:
供稿:網(wǎng)友

    隊列是設計程序中常用的一種數(shù)據(jù)結(jié)構(gòu)。它類似日常生活中的排隊現(xiàn)象,采用一種被稱為“先進先出”(LIFO)的存儲結(jié)構(gòu)。數(shù)據(jù)元素只能從隊尾進入,從隊首取出。在隊列中,數(shù)據(jù)元素可以任意增減,但數(shù)據(jù)元素的次序不會改變。每當有數(shù)據(jù)元素從隊列中被取出,后面的數(shù)據(jù)元素依次向前移動一位。所以,任何時候從隊列中讀到的都是隊首的數(shù)據(jù)。

  根據(jù)這些特點,對隊列定義了以下六種操作:

  enq(x) 向隊列插入一個值為x的元素;
   deq() 從隊列刪除一個元素;
   front() 從隊列中讀一個元素,但隊列保持不變;
   empty() 判定隊列是否為空,空則返回真;
   clear() 清空隊列;
   search(x) 查找距隊首最近的元素的位置,若不存在,返回-1。
 
   Vector類是java中專門負責處理對象元素有序存儲和任意增刪的類,因此,用Vector可以快速實現(xiàn)JAVA的隊列類。

  public class Queue extends java.util.Vector {
   public Queue() {
   super();
   }
   public synchronized void enq(Object x) {
   super.addElement(x);
   }
   public synchronized Object deq() {
   /* 隊列若為空,引發(fā)EmptyQueueException異常 */
   if( this.empty() )
   throw new EmptyQueueException();
   Object x = super.elementAt(0);
   super.removeElementAt(0);
   return x;
   }
   public synchronized Object front() {
   if( this.empty() )
   throw new EmptyQueueException();
   return super.elementAt(0);
   }
   public boolean empty() {
   return super.isEmpty();
   }
   public synchronized void clear() {
   super.removeAllElements();
   }
   public int search(Object x) {
   return super.indexOf(x);
   }
   }

  public class EmptyQueueException extends java.lang.RuntimeException {
   public EmptyQueueException() {
   super();
   }
   }

  以上程序在JDK1.1.5下編譯通過。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 花莲市| 行唐县| 武平县| 沙田区| 长葛市| 桐庐县| 中阳县| 潼关县| 安陆市| 道真| 五寨县| 辽阳市| SHOW| 永济市| 青河县| 石林| 绵阳市| 万载县| 镇安县| 贞丰县| 汤阴县| 巴彦淖尔市| 昭苏县| 自贡市| 吉林市| 肥城市| 凌云县| 马龙县| 永寿县| 偏关县| 砚山县| 洱源县| 青州市| 巴楚县| 赞皇县| 寿光市| 桓台县| 银川市| 永吉县| 嘉兴市| 崇仁县|