中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

國(guó)家水資源監(jiān)控能力建設(shè)網(wǎng)站semir是什么牌子衣服

國(guó)家水資源監(jiān)控能力建設(shè)網(wǎng)站,semir是什么牌子衣服,中山網(wǎng)站定制公司,陳木勝導(dǎo)演拍完怒火重案走的嗎目錄??????? 前言 1、棧 2、隊(duì)列 2.1、實(shí)現(xiàn)隊(duì)列 2.2、循環(huán)隊(duì)列 前言 上一篇中我們介紹了數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)中的《動(dòng)態(tài)數(shù)組》,本篇我們繼續(xù)來學(xué)習(xí)兩種基本的數(shù)據(jù)結(jié)構(gòu)——棧和隊(duì)列。 1、棧 特點(diǎn):棧也是一種線性結(jié)構(gòu),相比數(shù)組&#xff…

目錄???????

前言

1、棧

?2、隊(duì)列

2.1、實(shí)現(xiàn)隊(duì)列

2.2、循環(huán)隊(duì)列


前言

上一篇中我們介紹了數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)中的《動(dòng)態(tài)數(shù)組》,本篇我們繼續(xù)來學(xué)習(xí)兩種基本的數(shù)據(jù)結(jié)構(gòu)——棧和隊(duì)列。

1、棧

特點(diǎn):棧也是一種線性結(jié)構(gòu),相比數(shù)組,棧對(duì)應(yīng)的操作是數(shù)組的子集,只能從一端添加元素,也只能從同一端取出元素,這一端稱為棧頂。棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),即Last In First Out(LIFO)。

上面說到棧對(duì)應(yīng)的操作是數(shù)組的子集,因此我們就基于上一篇中實(shí)現(xiàn)的動(dòng)態(tài)數(shù)組來快速的實(shí)現(xiàn)一個(gè)棧。

首先定義一個(gè)接口,定義相關(guān)功能方法:

然后讓棧來實(shí)現(xiàn)接口中的具體功能:

import arr.Array;public class ArrayStack<E> implements Stack<E> {Array<E> array;public ArrayStack(int capacity) {array = new Array<>(capacity);}public ArrayStack() {array = new Array<>();}public int getCapacity() {return array.getCapacity();}@Overridepublic int getSize() {return array.getSize();}@Overridepublic boolean isEmpty() {return array.isEmpty();}@Overridepublic void push(E e) {array.addLast(e);}@Overridepublic E pop() {return array.removeLast();}@Overridepublic E peek() {return array.getLast();}@Overridepublic String toString() {StringBuilder res = new StringBuilder();res.append("Stack").append("[");for (int i = 0; i < array.getSize(); i++) {res.append(array.get(i));if (i != array.getSize() - 1) {res.append(",");}}res.append("] Top");return res.toString();}
}

寫一個(gè)測(cè)試方法:

執(zhí)行結(jié)果如下:

?2、隊(duì)列

2.1、實(shí)現(xiàn)隊(duì)列

隊(duì)列也是一種線性結(jié)構(gòu),相比數(shù)組,隊(duì)列對(duì)應(yīng)的操作也是數(shù)組的子集,隊(duì)列只能從一端(隊(duì)尾)添加元素,只能從另一端(隊(duì)首)取出元素。隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)(先到先得),即:First In First Out(FIFO)。

由于隊(duì)列對(duì)應(yīng)的操作同樣是數(shù)組的子集,那么我們讓然也是基于上一篇中實(shí)現(xiàn)的動(dòng)態(tài)數(shù)組來快速的實(shí)現(xiàn)一個(gè)棧。?

定義一個(gè)接口,定義相關(guān)功能方法:

然后讓隊(duì)列來實(shí)現(xiàn)接口中的具體功能:

import arr.Array;public class ArrayQueue<E> implements Queue<E> {private Array<E> array;public ArrayQueue(int capacity) {array = new Array<>(capacity);}public ArrayQueue(){array = new Array<>();}public int getCapacity(){return array.getCapacity();}@Overridepublic int getSize() {return array.getSize();}@Overridepublic boolean isEmpty() {return array.isEmpty();}@Overridepublic void enqueue(E e) {array.addLast(e);}@Overridepublic E dequeue() {return array.removeFirst();}@Overridepublic E getFront() {return array.getFirst();}@Overridepublic String toString() {StringBuilder res = new StringBuilder();res.append("Queue:").append("Front [");for (int i = 0; i < array.getSize(); i++) {res.append(array.get(i));if (i != array.getSize() - 1) {res.append(",");}}res.append("] tail");return res.toString();}
}

同樣的寫一個(gè)測(cè)試類:

?

執(zhí)行結(jié)果如下:

2.2、循環(huán)隊(duì)列

初始時(shí)front和tail都是指向下標(biāo)為0的位置,當(dāng)有元素入隊(duì)時(shí),tail指向該元素的下一個(gè)位置((tail+1)%capacity),元素出隊(duì)時(shí),front向后移動(dòng)一個(gè)位置,因此,循環(huán)隊(duì)列有元素出隊(duì)時(shí),無需讓所有的元素都移動(dòng)一個(gè)位置,只需讓front的指向移動(dòng)一次即可,示意圖如下:

?????????

下面我們來通過代碼看一下循環(huán)隊(duì)列該怎么實(shí)現(xiàn):

public class LoopQueue<E> implements Queue<E> {private E[] data;private int front, tail;private int size;public LoopQueue(int capacity) {data = (E[]) new Object[capacity + 1];front = 0;tail = 0;size = 0;}public LoopQueue() {this(10);}public int getCapacity() {return data.length - 1;}@Overridepublic int getSize() {return size;}@Overridepublic boolean isEmpty() {return front == tail;}@Overridepublic void enqueue(E e) {if ((tail + 1) % data.length == front) {resize(getCapacity() * 2);}data[tail] = e;tail = (tail + 1) % data.length;size++;}private void resize(int newCapacity) {E[] newdata = (E[]) new Object[newCapacity + 1];for (int i = 0; i < size; i++) {newdata[i] = data[(i + front) % data.length];}data = newdata;front = 0;tail = size;}@Overridepublic E dequeue() {if (isEmpty()) {throw new IllegalArgumentException("隊(duì)列為空");}E ret = data[front];data[front] = null;front = (front + 1) % data.length;size--;if (size == getCapacity() / 4 && getCapacity() / 2 != 0) {resize(getCapacity() / 2);}return null;}@Overridepublic E getFront() {if (isEmpty()) {throw new IllegalArgumentException("隊(duì)列為空");}return data[front];}@Overridepublic String toString() {StringBuilder res = new StringBuilder();res.append(String.format("Queue: size=%d,capacity=%d\n", size, getCapacity())).append("front [");for (int i = front; i != tail; i = (i + 1) % data.length) {res.append(data[i]);if ((i+1)%data.length != tail) {res.append(",");}}res.append("] tail");return res.toString();}
}

同樣的測(cè)試程序:

執(zhí)行結(jié)果如下:

好了,關(guān)于棧和隊(duì)列的內(nèi)容就說這么多吧,咱們下期再會(huì)!

祝:工作順利!

http://www.risenshineclean.com/news/34261.html

相關(guān)文章:

  • 黃岡黃頁寧波網(wǎng)絡(luò)推廣seo軟件
  • 珠海營(yíng)銷營(yíng)網(wǎng)站建設(shè)公司培訓(xùn)機(jī)構(gòu)不退費(fèi)最有效方式
  • 深圳網(wǎng)站建設(shè) 推薦xtdseo百度系app有哪些
  • 做網(wǎng)站算軟件開發(fā)么長(zhǎng)尾關(guān)鍵詞在線查詢
  • 建設(shè)網(wǎng)站開通網(wǎng)線多少錢資源網(wǎng)站優(yōu)化排名優(yōu)化
  • 北京網(wǎng)站推廣|網(wǎng)站制作|網(wǎng)絡(luò)推廣|網(wǎng)站建設(shè)7個(gè)湖北seo網(wǎng)站推廣策略
  • 沈陽微信網(wǎng)站搜索引擎優(yōu)化的要點(diǎn)
  • 三亞網(wǎng)站建設(shè)哪家好760關(guān)鍵詞排名查詢
  • 做網(wǎng)站用win還是li注冊(cè)百度賬號(hào)
  • 湖南建設(shè)人力資源官方網(wǎng)站萬能軟文模板
  • 廣西做網(wǎng)站口碑營(yíng)銷方案
  • wordpress去掉導(dǎo)航欄武漢seo關(guān)鍵字推廣
  • 中山專業(yè)制作網(wǎng)站武漢網(wǎng)絡(luò)推廣自然排名
  • 彭陽門戶網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣的方式和途徑有哪些
  • 做網(wǎng)站搞個(gè)物理服務(wù)器引流推廣犯法嗎
  • 網(wǎng)站沒有問題但是一直做不上首頁seo托管
  • 網(wǎng)站程序設(shè)計(jì)百度鏈接收錄提交入口
  • 學(xué)做效果圖的網(wǎng)站有哪些新手電商運(yùn)營(yíng)從哪開始學(xué)
  • 網(wǎng)站底部樣式智能建站平臺(tái)
  • 網(wǎng)站開發(fā)技術(shù)項(xiàng)目代碼搜索南寧seo外包要求
  • 做網(wǎng)站業(yè)務(wù)員怎么樣為企業(yè)策劃一次網(wǎng)絡(luò)營(yíng)銷活動(dòng)
  • 怎么做新網(wǎng)站的推廣下載優(yōu)化大師并安裝
  • 正規(guī)網(wǎng)站建設(shè)官網(wǎng)上海做網(wǎng)絡(luò)口碑優(yōu)化的公司
  • 電商網(wǎng)絡(luò)運(yùn)營(yíng)浙江搜索引擎優(yōu)化
  • 鄭州企業(yè)網(wǎng)站優(yōu)化哪家便宜2022適合小學(xué)生的簡(jiǎn)短新聞
  • 山西網(wǎng)站制作公司百度小說官網(wǎng)
  • 照片做視頻ppt模板下載網(wǎng)站好seo關(guān)鍵詞排名優(yōu)化價(jià)格
  • 做電影網(wǎng)站涉及的侵權(quán)問題網(wǎng)盤搜索神器
  • 做釣魚網(wǎng)站要什么工具中企動(dòng)力做網(wǎng)站推廣靠譜嗎
  • wap網(wǎng)站微信一鍵登錄網(wǎng)絡(luò)營(yíng)銷案例有哪些