国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 万州区| 田林县| 洛川县| 乌审旗| 江永县| 崇礼县| 林周县| 无锡市| 齐河县| 衡山县| 科技| 乐安县| 临猗县| 崇仁县| 海兴县| 福建省| 贡嘎县| 临朐县| 都昌县| 紫阳县| 攀枝花市| 乌海市| 舒城县| 南华县| 龙陵县| 邵阳市| 云浮市| 邓州市| 汉寿县| 巴塘县| 四川省| 宜兰县| 康定县| 永州市| 沁阳市| 酉阳| 安乡县| 页游| 铅山县| 绥江县| 宁安市|