麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 隊列數據結構 – 定義和 Java 示例代碼

隊列數據結構 – 定義和 Java 示例代碼

來源:千鋒教育
發布人:syq
時間: 2022-09-15 16:59:46 1663232386

  在本文中,我們將討論隊列數據結構,其操作以及如何使用Java中的數組實現這些操作。

隊列數據結構

  什么是隊列?

  隊列是線性數據結構,由遵循先進先出序列的項的集合組成。這意味著要插入的第一個項目將是第一個要刪除的項目。您也可以說項目是按照其插入順序刪除的。

  使用一個真實的例子,我們可以將隊列數據結構與排隊等待服務的個人隊列進行比較。一旦一個人被照顧,他們就會離開隊列,等待下一個人被照顧。他們按照他們來的順序得到幫助。

  隊列的結構

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

  背面是插入項目的位置,正面是隊列中移除/刪除項目的部分。

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

1

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

  請注意,您可以反轉隊列的結構 - 您可以將前面放在右側,將后面放在左側。無論您使用哪種結構,請始終記住,通過背面插入項目,通過正面刪除。

  隊列的常見操作

  隊列中通常使用以下操作:

  排隊:從隊列后面添加項目。

  取消排隊:從隊列前面刪除項目。

  前面/速覽:返回隊列前面的項的值,而不對項進行排隊(刪除)。

  是空的:檢查隊列是否為空。

  已滿:檢查隊列是否已滿。

  顯示:打印隊列中的所有項目。

  在了解如何使用代碼實現此目的之前,您需要了解排隊和取消排隊操作的工作原理以及它們如何影響前后位置。

  大多數編程語言中的數組索引從 0 開始。在實現代碼時,我們將數組的前后值的索引設置為 -1。這將使我們能夠在添加值時正確移動前后位置。

  請考慮下圖:

2

  箭頭顯示數組正面和背面的位置。當兩個位置都位于 -1 時,表示數組為空。

  讓我們將一些項添加到數組中,看看會發生什么。

3

  我們插入(排隊)了我們的第一個項目 - 5。正面和背面的位置也發生了變化。接下來,我們將看到當我們排隊更多項目時會發生什么

4

  已添加第二個項目,但僅向后移動。隨著我們排隊購買更多項目,這種情況將繼續下去。在上一個示例中,正面和背面一起移動,以便正面可以占據第一項的位置。

  由于這是當時第一個也是唯一一個物品,因此正面和背面都坐在那個位置。但是現在我們已經排隊了更多的項目,后面將繼續跟隨最后一個項目。

  我們將繼續填充數組,以便我們可以看到取消排隊時會發生什么。

5

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

  還記得先到先出的順序嗎?當我們執行取消排隊操作時,它將首先從隊列中刪除 5。如果我們再次執行它,那么它將移動到下一個數字,即10,并按照該順序繼續,只要我們調用它。

  這里,第一個取消排隊操作:

6

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

  按照相同的順序,如果我們繼續刪除項目,它將到達隊列末尾的前箭頭與后箭頭相遇的點。如果我們在這一點上再次取消排隊,前面的箭頭將移動超過后面的箭頭,然后隊列將被視為空,因為那里沒有要刪除的內容。發生這種情況時,我們會將其索引重置為 -1(初始起始點)。

  是時候編寫一些代碼了!

  在 Java 中實現隊列

  我們將通過創建每個操作,然后在最后將所有內容放在一起來分解此部分。

7

  我們已經創建了變量及其參數。我們使用 3 作為數組中可以排隊的最大項數。就像我們在上一節中的圖像中看到的那樣,我們已將正面和背面的初始索引設置為 -1。

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

  對于空的:

8

  如果你在上一節中繼續,很容易掌握。僅當正面和背面的索引為 -1 時,數組才為空。

  對于是完整的:

9

  這個可能看起來有點棘手,但這是邏輯:數組中允許的最大項目數為3,但數組中的三個項目不由索引3表示,而是用2表示,因為第一個索引是0。因此,最大長度減去 1 給我們的索引 2,它是數組中的第三個單元格。

  當所有單元格都已使用第三個單元格之前的值排隊時,數組將已滿。

  對于隊列:

10

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

  對于取消排隊:

11

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

  對于顯示:

12

  在這里,如果數組不為空,我們將遍歷并打印所有項目。

  最后,為了一窺:

13

  這僅打印正面項目的值。

  這些是我們隊列的所有操作。以下是所有這些內容:

14

  現在讓我們執行操作:

15

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

  display()打印出數組中的項。

  peak()打印前面的項的值。

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

  現在讓我們執行操作:

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

  display()打印出數組中的項。

  peak()打印前面的項的值。

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

  結論

  在本文中,我們定義了一個隊列及其結構。我們繼續看到一些使用圖像的示例,以顯示隊列的前后位置在項目排隊和取消排隊時如何反應。最后,我們看到了如何使用Java中的數組實現隊列數據結構。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
開班信息
北京校區
  • 北京校區
  • 大連校區
  • 廣州校區
  • 成都校區
  • 杭州校區
  • 長沙校區
  • 合肥校區
  • 南京校區
  • 上海校區
  • 深圳校區
  • 武漢校區
  • 鄭州校區
  • 西安校區
  • 青島校區
  • 重慶校區
  • 太原校區
  • 沈陽校區
  • 南昌校區
  • 哈爾濱校區
主站蜘蛛池模板: 精品国产v无码大片在线看| 日本不卡1卡2卡三卡四卡最新| 伊人a.v在线| 尹人久久大香找蕉综合影院 | 国产国语在线播放视频| 再深点灬舒服灬太大了爽| 玖玖色资源站| 美女在线免费观看| 国产精品99久久久久久人| 蜜桃成熟之蜜桃仙子| 欧美另类bbbxxxxx另类| 亲密爱人之无限诱惑| 国产精品无码久久av| 日韩欧国产精品一区综合无码 | 国产福利影院| 夂女yin乱合集高h文| 精品久久久久久久久中文字幕| 婷婷亚洲久悠悠色悠在线播放| 久久久久久亚洲精品| 久久久国产乱子伦精品| 免费看特黄特黄欧美大片| 国产麻豆剧果冻传媒一区| 男女一区二区三区免费| 国产999| 2021天天操| a级毛片高清免费视频| 日本年轻的妈妈| 中文理论片| 无翼乌漫画全彩| 男按摩师电影| 国外成人免费高清激情视频| 久久激情五月丁香伊人| 美女大量吞精在线观看456| 96免费精品视频在线观看| 草草影院最新发布地址| 日本公与熄乱理在线播放370| 色偷偷成人网免费视频男人的天堂| 波多野结衣动态图| 老公去上班的午后时光| 老子影院午夜| 男女一边做一边爽免费视频|