亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java實現隊列數據結構代碼詳解

2024-07-13 10:14:01
字體:
來源:轉載
供稿:網友

什么是隊列結構

一種線性結構,具有特殊的運算法則【只能在一端(隊頭)刪除,在另一端(隊尾)插入】。

分類:

順序隊列結構
鏈式隊列結構

基本操作:

入隊列
出隊列 

給出一些應用隊列的場景

  1):當作業被送到打印機的時候,就可以按到達的順序排起來,因此每一份作業是隊列的節點。

  2):售票口的人買票的順序的按照先來先買的順序售票。

  3):當所有的終端被占用,由于資源有限,來訪請求需要放在一個隊列中等候。

隊列是先進先出的! 

我們設置一個叫做LinkQueue<T>的泛型集合類,該類里面有 Node 作為內部類(作為節點用),它包含了泛型元素和下一個node節點的指向next(Node)。

在Linkqueue的里面設置隊列頭指針 front和隊列尾指針rear,長度size=0;我們先設置一個構造器LinkQueue(),用來初始化這兩個指針節點,當然,剛開始初始化的時候 這兩個指針僅僅是一個節點而已,里面的data是空的,我們還讓這兩個指針相等。

java/210302.html">java;">//鏈的數據結構  private class Node{  public T data;  public Node next;  //無參構造函數  public Node(){}    public Node(T data,Node next){   this.data=data;   this.next=next;  }  }  //隊列頭指針  private Node front;  //隊列尾指針  private Node rear;
public LinkQueue(){	Node n=new Node(null,null);	n.next=null;	front=rear=n;}

當我們向該隊列添加元素的時候,就會生成一個新的節點,其data就是你要加的元素,(當添加一個節點時,該節點就是隊尾指針指向的最后的節點,一直排在最后),所以隊尾rear.next=newNode(“新創建的節點”).這是第一個節點,也是最后一個節點,所以front.next=newNode.然后我們再讓rear=newNode(不斷更新)。

public void enqueue(T data){  //創建一個節點  Node s=new Node(data,null);  //將隊尾指針指向新加入的節點,將s節點插入隊尾  rear.next=s;  rear=s;  size++;  }

當隊列出隊的時候,還記得我們有一個Node是front.next=newNode 嗎?這就是第一個節點。先暫且把它叫做p,所以p.next=第二個節點,這時我們再把front.next=p.next;這樣頭指針就指向了第二個元素(每一次調用的時候隊列頭指針指會發生變化)。

public T dequeue(){  if(rear==front){   try {   throw new Exception("堆棧為空");   } catch (Exception e) {   e.printStackTrace();   }   return null;  }else{   //暫存隊頭元素   Node p=front.next;   T x=p.data;   //將隊頭元素所在節點摘鏈   front.next=p.next;   //判斷出隊列長度是否為1   if(p.next==null)   rear=front;   //刪除節點   p=null;   size--;   return x;  }  }

到此為止,隊列的核心操作就完畢了,剩下的比如說size(長度),isEmpty(是否為空),就不在說了。(因為太簡單了!)

具體源碼如下:

public class LinkQueue<T> {	//鏈的數據結構 	private class Node{		public T data;		public Node next;		//無參構造函數 		public Node(){		}		public Node(T data,Node next){			this.data=data;			this.next=next;		}	}	//隊列頭指針 	private Node front;	//隊列尾指針 	private Node rear;	//隊列長度 	private int size=0;	public LinkQueue(){		Node n=new Node(null,null);		n.next=null;		front=rear=n;	}	/**  * 隊列入隊算法  * @param data  * @author WWX  */	public void enqueue(T data){		//創建一個節點 		Node s=new Node(data,null);		//將隊尾指針指向新加入的節點,將s節點插入隊尾 		rear.next=s;		rear=s;		size++;	}	/**  * 隊列出隊算法  * @return  * @author WWX  */	public T dequeue(){		if(rear==front){			try {				throw new Exception("堆棧為空");			}			catch (Exception e) {				e.printStackTrace();			}			return null;		} else{			//暫存隊頭元素 			Node p=front.next;			T x=p.data;			//將隊頭元素所在節點摘鏈 			front.next=p.next;			//判斷出隊列長度是否為1 			if(p.next==null) 			  rear=front;			//刪除節點 			p=null;			size--;			return x;		}	}	/**  * 隊列長隊  * @return  * @author WWX  */	public int size(){		return size;	}	/**  * 判斷隊列是否為空  * @return  * @author WWX  */	public Boolean isEmpty(){		return size==0;	}}

另:我曾經看過一本JavaScript數據結構書,里面講的淺顯易懂,很適合前端搞js開發的讓人理解的更為深入,在此給予推薦。

總結

以上就是本文關于java實現隊列數據結構代碼詳解的全部內容,希望對大家有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
4k岛国日韩精品**专区| 日韩动漫免费观看电视剧高清| 国语对白做受69| 最近中文字幕日韩精品| 97国产精品视频人人做人人爱| 色偷偷噜噜噜亚洲男人| 欧美在线观看www| 欧美另类交人妖| 国产精品福利网| 国产精品九九久久久久久久| 欧美专区日韩视频| 亚洲成人国产精品| 国产精品一区二区三区久久久| 亚洲精品在线观看www| 成人免费在线网址| 成人精品视频在线| 精品国产一区二区在线| 热re99久久精品国产66热| 欧美日韩国产丝袜美女| 欧美成人激情图片网| 国产69精品久久久久99| 久久久999国产精品| 美女啪啪无遮挡免费久久网站| 亚洲九九九在线观看| 日韩美女写真福利在线观看| 亚洲白拍色综合图区| 亚洲第一中文字幕| 亚洲电影免费观看高清完整版| 91精品国产综合久久香蕉的用户体验| 欧美成人午夜免费视在线看片| 亚洲精品成人av| 久久久久久成人精品| 欧美午夜美女看片| 日韩av免费看| 中文一区二区视频| 国产精品视频在线播放| 一区二区三区日韩在线| 国产精品一区二区久久| 国产精品91在线| 岛国精品视频在线播放| 91地址最新发布| 97国产一区二区精品久久呦| 亚洲欧美激情视频| 亚洲视频第一页| 亚洲人成在线观看网站高清| 国产精品白丝av嫩草影院| 日韩欧美在线中文字幕| 久久精品国产91精品亚洲| 色噜噜狠狠狠综合曰曰曰| 精品成人国产在线观看男人呻吟| 亚洲有声小说3d| 91中文字幕在线观看| 欧美裸身视频免费观看| 欧美日韩爱爱视频| 国产一区二区三区三区在线观看| 亚洲综合成人婷婷小说| 欧美成人中文字幕在线| 欧美另类高清videos| 欧美猛少妇色xxxxx| 国产欧亚日韩视频| 国产精品久久久久久久久久尿| 亚洲国产欧美一区二区三区同亚洲| 国产精品jizz在线观看麻豆| 91精品国产91久久久久久久久| 国产精品人成电影在线观看| 97在线视频一区| 成人福利在线观看| 欧美日韩中文字幕在线| 精品女厕一区二区三区| 精品夜色国产国偷在线| 亚洲欧美日韩精品久久亚洲区| 国产91露脸中文字幕在线| 欧美日韩国产中文精品字幕自在自线| www.欧美精品一二三区| 国产日韩欧美在线播放| 国产精品精品视频一区二区三区| 91精品视频一区| 麻豆一区二区在线观看| 亚洲欧美一区二区三区情侣bbw| 国产91av在线| 欧美在线性爱视频| 久久久久女教师免费一区| 中文在线资源观看视频网站免费不卡| 欧美高跟鞋交xxxxhd| 欧美黑人xxxⅹ高潮交| 日韩精品在线看| 欧美日韩中文字幕综合视频| 伊人久久免费视频| 亚洲视频精品在线| 亚洲精品视频二区| 精品国产精品三级精品av网址| 亚洲福利视频专区| 久久人人97超碰精品888| 国产日产欧美a一级在线| 国产日韩在线精品av| 国产69久久精品成人看| 欧美在线观看一区二区三区| 久久成人在线视频| 久久国产一区二区三区| 成人羞羞国产免费| 亚洲欧美激情一区| 国产剧情日韩欧美| 97精品伊人久久久大香线蕉| 国产精品wwww| www.欧美视频| 668精品在线视频| 欧美激情第6页| 久久伊人精品一区二区三区| 国产精品久久久久久久久久尿| 欧美激情精品久久久久久免费印度| 国产精品扒开腿做爽爽爽视频| 久久国产精品视频| 欧美福利视频在线观看| 国产裸体写真av一区二区| 亚洲一级免费视频| 国产成人精品久久二区二区| 岛国av一区二区三区| 日韩av网站大全| 欧美色道久久88综合亚洲精品| 97碰碰碰免费色视频| 成人黄色中文字幕| 亚洲欧洲在线免费| 久热国产精品视频| 久久久免费在线观看| 亚洲人高潮女人毛茸茸| 亚洲欧美中文在线视频| 欧美亚洲另类制服自拍| 欧美激情aaaa| 尤物九九久久国产精品的特点| 九色成人免费视频| 亚洲韩国青草视频| 欧美日韩午夜剧场| 日韩在线播放av| 欧美精品在线看| 亚洲综合小说区| 国内精品国产三级国产在线专| 在线亚洲国产精品网| 国色天香2019中文字幕在线观看| 日韩欧美亚洲范冰冰与中字| 美女福利精品视频| 欧美一区二区三区四区在线| 97超碰蝌蚪网人人做人人爽| 国产精品小说在线| 亚洲激情在线观看| 亚洲天堂av网| 92看片淫黄大片欧美看国产片| 欧美在线观看一区二区三区| 人人做人人澡人人爽欧美| 日韩电影在线观看免费| 伦理中文字幕亚洲| 国产在线视频一区| 久久久久久久久网站| 性欧美xxxx交| 久久久精品久久| 亚洲天堂av综合网| 日韩欧美中文第一页| 国产精品欧美亚洲777777| 在线视频精品一| 伊人av综合网| 96sao精品视频在线观看| 精品亚洲男同gayvideo网站| 日韩国产激情在线| 免费91麻豆精品国产自产在线观看| 国产视频精品自拍|