最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java使用數(shù)組和鏈表實現(xiàn)隊列示例

 更新時間:2014年01月29日 11:13:08   作者:  
隊列是一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,只允許在表的后端(rear)進行插入操作,下面介紹一下java使用數(shù)組和鏈表實現(xiàn)隊列的示例

(1)用數(shù)組實現(xiàn)的隊列:

復制代碼 代碼如下:
 
//先自己定義一個接口 
public interface NetJavaList { 
  public void add(Student t);    //繼承該接口的類必須實現(xiàn)的方法 
  public Student get(int index);//隊列的加入,取出,隊列的大小 
  public int size(); 


定義一個學生類

復制代碼 代碼如下:

class Student { 
    private String name ;   //私有屬性 名字,學分 
    private int score ; 
    public Student(String name , int score){ 
        this.name = name ; 
        this.score = score ; 
    } 
    public void printInfo(){ 
        System.out.println("姓名"+name + "學分"+score ) ; 
    } 

 實現(xiàn)自定義接口

復制代碼 代碼如下:

public class STList implements NetJavaList{ 
private Student[] str = new Student[0] ; 
    //增加隊列的元素 
    public void add(Student t) { 
        Student[] src = new Student[str.length+1]; 
        for(int i=0;i<str.length;i++){ 
            src[i]=str[i] ; 
        } 
        src[str.length]=t ; 
        str = src ; 
    } 

    //得到隊列中的某個元素 
    public Student get(int index) { 
        Student t = str[index]; 
        return t; 
    } 

    //返回隊列的長度 
    public int size() { 

        return str.length; 
    } 


寫個主函數(shù)類實現(xiàn)下隊列

復制代碼 代碼如下:

public class Manager { 
    public static void main(String[] args) { 
        STList sil = new STList() ; 
        for(int i=0;i<5;i++){ 
        Student st = new Student("name"+i,i*10);     
        sil.add(st); 
        } 
       printList(sil) ; 

    } 
//輸出隊列中的所有元素 
  public static void printList(STList t){ 
      for(int i=0;i<t.size();i++){ 
          Student f =t.get(i); 
          f.printInfo(); 
      } 

  } 

 (2)鏈表實現(xiàn)的隊列
  先定義一個節(jié)點類;

復制代碼 代碼如下:

public class LinkNode { 
private Object obj ; //節(jié)點內的數(shù)據(jù)對象 
private LinkNode next ; //對下一個節(jié)點的引用 
//在創(chuàng)建節(jié)點對象的時候就傳入節(jié)點的數(shù)據(jù)對象 
public LinkNode(Object obj){ 
    this.obj = obj ; 

public Object getObj(){ 
    return obj ; 

public void setObj(Object obj){ 
    this.obj = obj ; 


public LinkNode getNext(){ 
    return next ; 

public void setNext(LinkNode next){ 
    this.next =next ; 


 然后寫個隊列的實現(xiàn)方法類

復制代碼 代碼如下:

public class LinkList { 

    public static LinkNode root ;//第一個節(jié)點 
    public LinkNode last = null ;//最后的一個節(jié)點 
    public static void main(String ara[]){ 
        LinkList df = new LinkList() ; 
        df.add(1); 
        df.add(2); 
        df.add(3); 
        df.printLinkList(root); 
        df.move(root,2) ; 
        df.move(root,2) ; 
        df.printLinkList(root); 

    } 
    /*
     * 插入節(jié)點
     */ 
    public void add(Object obj){ 
        //創(chuàng)建一個新的節(jié)點 
        LinkNode t = new LinkNode(obj); 
        if(root ==null){ 
            root = t ; 
            last = root ; 
        }else{ 
            last.setNext(t); 
            last = t ; 
        } 

    } 
    /*
     * 輸出操作
     */ 
    public void printLinkList(LinkNode root){ 
        if(null != root){ 
            Object data = root.getObj(); 
            System.out.println(data); 
            LinkNode temp = root.getNext(); 
            printLinkList(temp) ; 
        } 
    } 
    /*
     * 刪除操作
     */ 
    public LinkNode move(LinkNode root,int index){ 
        if(this.getLength()<index || index <0){ 
            throw new RuntimeException("下標越界:"+index + 
                ",size:" +this.getLength()) ; 
        }else{ 
        int count = 1 ;LinkNode sd = root ; 
         while(count!=index-1){ 
             sd = sd.getNext(); 

         } 

         
         sd.setNext(sd.getNext().getNext()); 
        return root ; 
    }} 

   /*
    * 得到鏈表的長度
    */ 
      public int  getLength(){ 
        int count = 0 ; 
        if(root==null){ 
            return count ; 
        } 
        LinkNode node =root.getNext(); 
        while(null != node){ 
            count ++ ; 
            node=node.getNext(); 

        } 
        //System.out.println((count+1)); 
        return count+1 ; 
      } 

相關文章

  • 論java如何通過反射獲得方法真實參數(shù)名及擴展研究

    論java如何通過反射獲得方法真實參數(shù)名及擴展研究

    這篇文章主要為大家介紹了java如何通過反射獲得方法的真實參數(shù)名以及擴展研究,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步早日升職加薪
    2022-01-01
  • 巧妙mybatis避免Where 空條件的尷尬

    巧妙mybatis避免Where 空條件的尷尬

    這篇文章主要介紹了巧妙mybatis避免Where 空條件的尷尬,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • spring-boot-starter-validation?校驗參數(shù)的實現(xiàn)

    spring-boot-starter-validation?校驗參數(shù)的實現(xiàn)

    參數(shù)校驗在很多地方都可以用到,本文主要介紹了spring-boot-starter-validation?校驗參數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 從零開始讓你的Spring?Boot項目跑在Linux服務器

    從零開始讓你的Spring?Boot項目跑在Linux服務器

    這篇文章主要給大家介紹了如何從零開始讓你的Spring?Boot項目跑在Linux服務器的相關資料,由于springboot是內嵌了tomcat,所以可以直接將項目打包上傳至服務器上,需要的朋友可以參考下
    2021-11-11
  • Java?數(shù)據(jù)結構與算法系列精講之數(shù)組

    Java?數(shù)據(jù)結構與算法系列精講之數(shù)組

    數(shù)組是有序的元素序列,若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標變量。數(shù)組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式
    2022-02-02
  • Spring之@Aspect中通知的5種方式詳解

    Spring之@Aspect中通知的5種方式詳解

    本文主要介紹了Spring之@Aspect中通知的5種方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • SpringCloud之分布式配置中心Spring Cloud Config高可用配置實例代碼

    SpringCloud之分布式配置中心Spring Cloud Config高可用配置實例代碼

    這篇文章主要介紹了SpringCloud之分布式配置中心Spring Cloud Config高可用配置實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 總結Java常用加解密方法AES?SHA1?md5

    總結Java常用加解密方法AES?SHA1?md5

    這篇文章主要為大家介紹了Java常用加密方法AES?SHA1?md5總結及示例demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Java程序員面試中的多線程問題總結

    Java程序員面試中的多線程問題總結

    這篇文章收集了 Java 線程方面一些典型的問題,這些問題經(jīng)常被高級工程師所問到。這篇文章收集了 Java 線程方面一些典型的問題,這些問題經(jīng)常被高級工程師所問到。
    2016-11-11
  • MyEclipse2018中安裝Mybatis generator插件的實現(xiàn)步驟

    MyEclipse2018中安裝Mybatis generator插件的實現(xiàn)步驟

    這篇文章主要介紹了MyEclipse2018中安裝Mybatis generator插件的實現(xiàn)步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02

最新評論

嫩江县| 新竹市| 新竹县| 吉林市| 寻甸| 和田县| 长岭县| 环江| 南靖县| 疏勒县| 扎赉特旗| 北京市| 胶南市| 杂多县| 同德县| 宁安市| 吴江市| 宜良县| 于都县| 永寿县| 德化县| 杭锦后旗| 宁国市| 上思县| 磐安县| 惠安县| 襄汾县| 灯塔市| 柏乡县| 阿克苏市| 沙雅县| 罗源县| 奎屯市| 上蔡县| 绥芬河市| 迁西县| 沾益县| 磐安县| 始兴县| 固安县| 连城县|