久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > 隊(duì)列數(shù)據(jù)結(jié)構(gòu) – 定義和 Java 示例代碼

        隊(duì)列數(shù)據(jù)結(jié)構(gòu) – 定義和 Java 示例代碼

        來源:千鋒教育
        發(fā)布人:syq
        時(shí)間: 2022-09-15 16:59:46 1663232386

          在本文中,我們將討論隊(duì)列數(shù)據(jù)結(jié)構(gòu),其操作以及如何使用Java中的數(shù)組實(shí)現(xiàn)這些操作。

        隊(duì)列數(shù)據(jù)結(jié)構(gòu)

          什么是隊(duì)列?

          隊(duì)列是線性數(shù)據(jù)結(jié)構(gòu),由遵循先進(jìn)先出序列的項(xiàng)的集合組成。這意味著要插入的第一個(gè)項(xiàng)目將是第一個(gè)要?jiǎng)h除的項(xiàng)目。您也可以說項(xiàng)目是按照其插入順序刪除的。

          使用一個(gè)真實(shí)的例子,我們可以將隊(duì)列數(shù)據(jù)結(jié)構(gòu)與排隊(duì)等待服務(wù)的個(gè)人隊(duì)列進(jìn)行比較。一旦一個(gè)人被照顧,他們就會離開隊(duì)列,等待下一個(gè)人被照顧。他們按照他們來的順序得到幫助。

          隊(duì)列的結(jié)構(gòu)

          隊(duì)列主要由兩部分組成:前/頭和后/尾/后。為了清晰和一致,我們將堅(jiān)持使用正面和背面。

          背面是插入項(xiàng)目的位置,正面是隊(duì)列中移除/刪除項(xiàng)目的部分。

          這是一個(gè)圖表,以幫助您更好地理解:

        1

          該圖顯示了一個(gè)包含各種單元格的數(shù)組。物品通過背面插入,并通過正面移除。有一些術(shù)語用于插入和刪除隊(duì)列中的項(xiàng)目,我們將在下一節(jié)中介紹。

          請注意,您可以反轉(zhuǎn)隊(duì)列的結(jié)構(gòu) - 您可以將前面放在右側(cè),將后面放在左側(cè)。無論您使用哪種結(jié)構(gòu),請始終記住,通過背面插入項(xiàng)目,通過正面刪除。

          隊(duì)列的常見操作

          隊(duì)列中通常使用以下操作:

          排隊(duì):從隊(duì)列后面添加項(xiàng)目。

          取消排隊(duì):從隊(duì)列前面刪除項(xiàng)目。

          前面/速覽:返回隊(duì)列前面的項(xiàng)的值,而不對項(xiàng)進(jìn)行排隊(duì)(刪除)。

          是空的:檢查隊(duì)列是否為空。

          已滿:檢查隊(duì)列是否已滿。

          顯示:打印隊(duì)列中的所有項(xiàng)目。

          在了解如何使用代碼實(shí)現(xiàn)此目的之前,您需要了解排隊(duì)和取消排隊(duì)操作的工作原理以及它們?nèi)绾斡绊懬昂笪恢谩?/p>

          大多數(shù)編程語言中的數(shù)組索引從 0 開始。在實(shí)現(xiàn)代碼時(shí),我們將數(shù)組的前后值的索引設(shè)置為 -1。這將使我們能夠在添加值時(shí)正確移動(dòng)前后位置。

          請考慮下圖:

        2

          箭頭顯示數(shù)組正面和背面的位置。當(dāng)兩個(gè)位置都位于 -1 時(shí),表示數(shù)組為空。

          讓我們將一些項(xiàng)添加到數(shù)組中,看看會發(fā)生什么。

        3

          我們插入(排隊(duì))了我們的第一個(gè)項(xiàng)目 - 5。正面和背面的位置也發(fā)生了變化。接下來,我們將看到當(dāng)我們排隊(duì)更多項(xiàng)目時(shí)會發(fā)生什么

        4

          已添加第二個(gè)項(xiàng)目,但僅向后移動(dòng)。隨著我們排隊(duì)購買更多項(xiàng)目,這種情況將繼續(xù)下去。在上一個(gè)示例中,正面和背面一起移動(dòng),以便正面可以占據(jù)第一項(xiàng)的位置。

          由于這是當(dāng)時(shí)第一個(gè)也是唯一一個(gè)物品,因此正面和背面都坐在那個(gè)位置。但是現(xiàn)在我們已經(jīng)排隊(duì)了更多的項(xiàng)目,后面將繼續(xù)跟隨最后一個(gè)項(xiàng)目。

          我們將繼續(xù)填充數(shù)組,以便我們可以看到取消排隊(duì)時(shí)會發(fā)生什么。

        5

          因此,后退箭頭按照項(xiàng)目添加到最后一個(gè)的順序跟隨項(xiàng)目。現(xiàn)在讓我們刪除(取消排隊(duì))一些項(xiàng)目。

          還記得先到先出的順序嗎?當(dāng)我們執(zhí)行取消排隊(duì)操作時(shí),它將首先從隊(duì)列中刪除 5。如果我們再次執(zhí)行它,那么它將移動(dòng)到下一個(gè)數(shù)字,即10,并按照該順序繼續(xù),只要我們調(diào)用它。

          這里,第一個(gè)取消排隊(duì)操作:

        6

          現(xiàn)在,前箭頭已移至索引 1。這意味著索引 0 處的項(xiàng)目已被刪除。通過刪除,我們并不意味著從數(shù)組中,而是從隊(duì)列中移除 - 只有從前位置到后位置的項(xiàng)目是隊(duì)列的一部分。

          按照相同的順序,如果我們繼續(xù)刪除項(xiàng)目,它將到達(dá)隊(duì)列末尾的前箭頭與后箭頭相遇的點(diǎn)。如果我們在這一點(diǎn)上再次取消排隊(duì),前面的箭頭將移動(dòng)超過后面的箭頭,然后隊(duì)列將被視為空,因?yàn)槟抢餂]有要?jiǎng)h除的內(nèi)容。發(fā)生這種情況時(shí),我們會將其索引重置為 -1(初始起始點(diǎn))。

          是時(shí)候編寫一些代碼了!

          在 Java 中實(shí)現(xiàn)隊(duì)列

          我們將通過創(chuàng)建每個(gè)操作,然后在最后將所有內(nèi)容放在一起來分解此部分。

        7

          我們已經(jīng)創(chuàng)建了變量及其參數(shù)。我們使用 3 作為數(shù)組中可以排隊(duì)的最大項(xiàng)數(shù)。就像我們在上一節(jié)中的圖像中看到的那樣,我們已將正面和背面的初始索引設(shè)置為 -1。

          接下來,我們將定義“是空”和“是完整”功能。

          對于空的:

        8

          如果你在上一節(jié)中繼續(xù),很容易掌握。僅當(dāng)正面和背面的索引為 -1 時(shí),數(shù)組才為空。

          對于是完整的:

        9

          這個(gè)可能看起來有點(diǎn)棘手,但這是邏輯:數(shù)組中允許的最大項(xiàng)目數(shù)為3,但數(shù)組中的三個(gè)項(xiàng)目不由索引3表示,而是用2表示,因?yàn)榈谝粋€(gè)索引是0。因此,最大長度減去 1 給我們的索引 2,它是數(shù)組中的第三個(gè)單元格。

          當(dāng)所有單元格都已使用第三個(gè)單元格之前的值排隊(duì)時(shí),數(shù)組將已滿。

          對于隊(duì)列:

        10

          如果數(shù)組已滿,則我們收到一條消息,指出它已滿。如果正面和背面為 -1,則將項(xiàng)目分配給索引為 0 的第一個(gè)單元格 – 否則,將插入該值并遞增后位置。

          對于取消排隊(duì):

        11

          在這里,如果數(shù)組為空,我們得到相應(yīng)的消息。如果前面與后面相遇,我們會將其索引重置回 -1,就像我們在上一節(jié)中的圖像中看到的那樣。如果最后兩個(gè)條件不適用,則前面遞增。

          對于顯示:

        12

          在這里,如果數(shù)組不為空,我們將遍歷并打印所有項(xiàng)目。

          最后,為了一窺:

        13

          這僅打印正面項(xiàng)目的值。

          這些是我們隊(duì)列的所有操作。以下是所有這些內(nèi)容:

        14

          現(xiàn)在讓我們執(zhí)行操作:

        15

          enQueue(3)將 3 插入到我們的隊(duì)列中,類似于接下來的兩行代碼。

          display()打印出數(shù)組中的項(xiàng)。

          peak()打印前面的項(xiàng)的值。

          我們沒有執(zhí)行,因此您可以繼續(xù)自己嘗試 - 顯示您的數(shù)組并在取消排隊(duì)后看一看,看看會發(fā)生什么。有多種方法可以修改代碼,所以玩得開心!deQueue

          現(xiàn)在讓我們執(zhí)行操作:

          enQueue(3)將 3 插入到我們的隊(duì)列中,類似于接下來的兩行代碼。

          display()打印出數(shù)組中的項(xiàng)。

          peak()打印前面的項(xiàng)的值。

          我們沒有執(zhí)行,因此您可以繼續(xù)自己嘗試 - 顯示您的數(shù)組并在取消排隊(duì)后看一看,看看會發(fā)生什么。有多種方法可以修改代碼,所以玩得開心!deQueue

          結(jié)論

          在本文中,我們定義了一個(gè)隊(duì)列及其結(jié)構(gòu)。我們繼續(xù)看到一些使用圖像的示例,以顯示隊(duì)列的前后位置在項(xiàng)目排隊(duì)和取消排隊(duì)時(shí)如何反應(yīng)。最后,我們看到了如何使用Java中的數(shù)組實(shí)現(xiàn)隊(duì)列數(shù)據(jù)結(jié)構(gòu)。

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        抖店入駐收費(fèi)多少?開抖店費(fèi)用是多少?

        如果要開通抖音小店,需要先把抖音賬號開通商品櫥窗功能。入駐之后,可以選擇頭條賬號、抖音賬號、火山賬號任一類型注冊或登錄。那開個(gè)抖店要多...詳情>>

        2023-09-19 07:50:26
        想做直播帶貨的貨源哪里來?怎么找貨源?

        現(xiàn)如今直播推廣的方式是非?;鸬模兄浅6嗟馁u家都是利用直播推廣店鋪產(chǎn)品,效果也是非常不錯(cuò)。但很多賣家想要了解現(xiàn)在直播帶貨的話什么產(chǎn)品...詳情>>

        2023-09-19 07:47:16
        適合三農(nóng)領(lǐng)域的名字?有何技巧?

        現(xiàn)在在抖音上很多博主會選擇直播來賺取更多的流量以及利潤,直播間的東西也有很多讓消費(fèi)者信任并且喜歡的,而且隨著越來越多人直播,很多農(nóng)產(chǎn)品...詳情>>

        2023-09-19 07:06:05
        抖店商品發(fā)布違規(guī)怎么申訴?有何規(guī)則?

        抖店服務(wù)市場服務(wù)商發(fā)布違禁信息如何處理?情節(jié)嚴(yán)重程度判定原則:違規(guī)嚴(yán)重等級主要通過服務(wù)商違規(guī)次數(shù)、造成后果的嚴(yán)重程度、獲利或?qū)е聯(lián)p失的...詳情>>

        2023-09-19 06:59:55
        “泛垂直起號”可能是2023年最高效的起號方式

        這可能是明年最好用的旗號方式了,今天教大家一個(gè)很野,但是可以讓你三天漲1000粉的偏方。去年前年啊,每個(gè)人都教你,誰知七號對著自己的產(chǎn)品拍...詳情>>

        2023-09-19 06:37:38
        開班信息
        北京校區(qū)
        • 北京校區(qū)
        • 大連校區(qū)
        • 廣州校區(qū)
        • 成都校區(qū)
        • 杭州校區(qū)
        • 長沙校區(qū)
        • 合肥校區(qū)
        • 南京校區(qū)
        • 上海校區(qū)
        • 深圳校區(qū)
        • 武漢校區(qū)
        • 鄭州校區(qū)
        • 西安校區(qū)
        • 青島校區(qū)
        • 重慶校區(qū)
        • 太原校區(qū)
        • 沈陽校區(qū)
        • 南昌校區(qū)
        • 哈爾濱校區(qū)
        峡江县| 进贤县| 天水市| 九台市| 静海县| 长葛市| 布尔津县| 梁山县| 彭州市| 法库县| 丹寨县| 绥德县| 吴桥县| 抚宁县| 镇原县| 麻江县| 建宁县| 樟树市| 北川| 息烽县| 巴林右旗| 西贡区| 玉溪市| 成安县| 北辰区| 仙桃市| 营口市| 宁化县| 虞城县| 尖扎县| 凉城县| 凤台县| 普陀区| 长海县| 达孜县| 舞钢市| 泰兴市| 昭通市| 体育| 霍城县| 多伦县|