<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

    java 數(shù)據(jù)結(jié)構(gòu)——堆棧和隊(duì)列

     隊(duì)列的基本概念
      隊(duì)列(簡(jiǎn)稱隊(duì))也是一種特殊的線性表,隊(duì)列的數(shù)據(jù)元素以及數(shù)據(jù)元素間的邏輯關(guān)系和線性表完全相同。差別是線性表允許在任意位置插入和刪除,而隊(duì)列只允許在一端進(jìn)行插入操作而在另一端進(jìn)行刪除操作。
      隊(duì)列中允許插入操作的一端稱為隊(duì)尾,允許進(jìn)行刪除操作的一端稱為隊(duì)頭。隊(duì)列的插入操作通常稱為入隊(duì)列,隊(duì)列的刪除操作通常稱為出隊(duì)列。
      根據(jù)隊(duì)列的定義,每次入隊(duì)列的數(shù)據(jù)元素都放在原來的隊(duì)尾之后成為新的隊(duì)尾元素,每次出隊(duì)列的數(shù)據(jù)元素都是隊(duì)頭元素。這樣,最先入隊(duì)列的數(shù)據(jù)元素總是最先出隊(duì)列。最后入隊(duì)列的數(shù)據(jù)元素總是最后出隊(duì)列,所以隊(duì)列也稱為先進(jìn)先出表。
      隊(duì)列的抽象數(shù)據(jù)類型
      1、數(shù)據(jù)集合:隊(duì)列的數(shù)據(jù)集合可以表示為a1,a2,a3,a4,每個(gè)數(shù)據(jù)元素的數(shù)據(jù)類型可以是任意類類型
      2、操作集合:1、入隊(duì)列操作(append())
      2、出隊(duì)列操作(delete())
      3、取隊(duì)列的頭元素(getFront())
      4、判斷隊(duì)列是否為空(isEmpty())
      源代碼------順序存儲(chǔ)結(jié)構(gòu)
      隊(duì)列接口代碼
    package com.queue;
    //隊(duì)列接口
    public interface Queue {
    //入隊(duì)列操作
    public void append(Object object);
    //出隊(duì)列操作
    public Object delete();
    //取隊(duì)列頭元素
    public Object getFront();
    //判斷隊(duì)列是否為空
    public boolean isEmpty();
    }

     隊(duì)列接口實(shí)例化類
    package com.queue;
    public class SeqQueue implements Queue {
    //相關(guān)屬性和構(gòu)造方法
    //默認(rèn)大小
    static final int defauleSize=10;
    //隊(duì)頭
    int front;
    //隊(duì)尾
    int rear;
    //隊(duì)列元素個(gè)數(shù)統(tǒng)計(jì)
    int count;
    //隊(duì)列初始化大小
    int maxSize;
    //隊(duì)列數(shù)據(jù)信息
    Object[] data;
    public void initiate(int sz){
    maxSize=sz;
    front=rear=0;
    count=0;
    data=new Object[sz];
    }
    public SeqQueue(){
    initiate(defauleSize);
    }
    public SeqQueue(int length){
    initiate(length);
    }
    @Override
    public void append(Object object) {
    // TODO Auto-generated method stub
    if(count>0&&front==rear){
    return;
    }
    data[rear]=object;
    //求模運(yùn)算
    rear=(rear+1)%maxSize;
    count++;
    }
    @Override
    public Object delete() {
    // TODO Auto-generated method stub
    Object object=null;
    if(count==0){
    object="404";
    return object;
    }else{
    object=data[front];
    //求模運(yùn)算
    front=(front+1)%maxSize;
    count--;
    return object;
    }
    }
    @Override
    public Object getFront() {
    // TODO Auto-generated method stub
    Object object=null;
    if(count==0){
    object="404";
    return object;
    }else{
    return data[front];
    }
    }
    @Override
    public boolean isEmpty() {
    // TODO Auto-generated method stub
    return count!=0;
    }
    }


     實(shí)驗(yàn)結(jié)果:
    package com.queue;
    public class QueueTest {
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    SeqQueue queue=new SeqQueue();
    //判斷隊(duì)列是否為空
    boolean target=queue.isEmpty();
    System.out.println("隊(duì)列是否為空:"+target);
    //入隊(duì)列
    queue.append("c");
    queue.append("c++");
    queue.append("c#");
    queue.append("object-c");
    queue.append("php");
    queue.append("java");
    queue.append("ruby");
    queue.append("javascript");
    queue.append("ext");
    queue.append("jquery");
    //再次判斷隊(duì)列是否為空
    boolean targets=queue.isEmpty();
    System.out.println("再次判斷隊(duì)列是否為空:"+targets);
    //出隊(duì)列
    Object object=queue.delete();
    System.out.println("出隊(duì)列的元素是:"+object);
    //取隊(duì)列頭元素
    Object front=queue.getFront();
    System.out.println("隊(duì)列頭元素是:"+front);
    }
    }
      圖片展示:
      源代碼--------鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

    posted on 2013-11-08 14:12 順其自然EVO 閱讀(510) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2013年11月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 深夜a级毛片免费视频| 100000免费啪啪18免进| 亚洲国产一区国产亚洲 | 香蕉视频在线免费看| 久久夜色精品国产噜噜噜亚洲AV | 亚洲中文无码av永久| 又黄又爽一线毛片免费观看| 国产精品免费高清在线观看| 在线观看亚洲AV日韩AV| 亚洲午夜久久久影院伊人| 国产免费不卡v片在线观看| av片在线观看永久免费| 亚洲一级毛片免费在线观看| 中文字幕久久亚洲一区 | 无码国产精品久久一区免费| 国产成人1024精品免费| 亚洲香蕉久久一区二区 | 一区二区三区免费高清视频| 亚洲国产精品综合福利专区| 亚洲一级片免费看| 在线观看免费高清视频| 国色精品va在线观看免费视频 | 成年美女黄网站18禁免费| 久久久久国产精品免费看| 无码一区二区三区亚洲人妻| 亚洲精品中文字幕乱码| 国产美女亚洲精品久久久综合| 免费黄色一级毛片| 24小时免费看片| 免费国产成人午夜在线观看| 免费一级毛片在线播放放视频| 亚洲 欧洲 视频 伦小说| 亚洲av福利无码无一区二区 | 亚洲国产高清国产拍精品| 亚洲综合激情六月婷婷在线观看| 亚洲中文久久精品无码| 国产99视频精品免费视频7| 无码中文字幕av免费放| 亚洲一区二区三区免费观看| 成全视频免费观看在线看| 一级毛片不卡免费看老司机|