在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

隊列實現(xiàn)棧原理是什么?隊列實現(xiàn)棧方案有哪幾種?

Android編程精選 ? 來源:編程學(xué)習(xí)總站 ? 作者:寫代碼的牛頓 ? 2021-07-04 13:28 ? 次閱讀

1、隊列實現(xiàn)棧原理簡述

棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),而隊列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),兩者原理不難理解,使用也簡單。但是我們不僅僅要掌握數(shù)據(jù)結(jié)構(gòu)的基本原理,還要學(xué)會靈活運(yùn)用,能否靈活運(yùn)用是考察一個人對數(shù)據(jù)結(jié)構(gòu)的理解程度,也是在面試的時候經(jīng)常會考到的知識點(diǎn)。現(xiàn)在假設(shè)面試官要求你用隊列實現(xiàn)棧,你的解決方案是什么?通過棧的基本原理我們知道,只要每次進(jìn)行stack_pop操作時將隊列里最后一個元素輸出就能模擬棧的輸出操作。

2、隊列實現(xiàn)棧方案和實現(xiàn)

方案1:

我們很容易想到一種解決方案,隊列queue1保存原始輸入數(shù)據(jù),隊列queue2作為臨時隊列緩存數(shù)據(jù),只要進(jìn)行stack_pop操作時,先將queue1里除最后一個元素外全部出隊,且出隊的數(shù)據(jù)保存在一個臨時隊列queue2里,保存queue1最后的元素,最后再將queue2里的全部元素出隊,且出隊的元素重新放進(jìn)queue1里,返回保存的queue1最后的元素。

我們作了下圖便于理解2個隊列模擬棧的過程。

一個棧輸出元素順序

pYYBAGDhSEyAdw4iAAASk34tfNs779.jpg

兩個隊列queue1和queue2模擬棧

poYBAGDhSFSAD2xuAABApH0Njto619.jpg

在數(shù)據(jù)結(jié)構(gòu)與算法篇-隊列和數(shù)據(jù)結(jié)構(gòu)與算法篇-棧文章里我們詳細(xì)介紹了隊列和棧的原理,并都用C實現(xiàn)了隊列和棧。現(xiàn)在我們復(fù)用這兩篇文章里隊列的實現(xiàn)代碼,用于實現(xiàn)棧。定義棧相關(guān)數(shù)據(jù)結(jié)構(gòu)和操作函數(shù)代碼如下:

poYBAGDhSF6AElBAAAB5DbpRGCo582.jpg

棧初始化函數(shù)實現(xiàn):

poYBAGDhSGuATGupAABDbwkUz54998.jpg

棧銷毀函數(shù)實現(xiàn):

pYYBAGDhSHeACJ0jAAA5-j_6l6c146.jpg

入棧函數(shù)實現(xiàn):

poYBAGDhSICAXrdRAAAxX-RjUj8740.jpg

出棧函數(shù)實現(xiàn):

pYYBAGDhSIqASGSQAAB8F1Mp3es586.jpg

判斷棧是否空和是否滿函數(shù)實現(xiàn):

poYBAGDhSJyAIFsaAABW1UkhDxU770.jpg

從方案1我們知道每次出隊都需要將隊列里除最后一個元素外的元素保存在另外一個臨時隊列里,增加了空間復(fù)雜度。那么能否只用一個隊列能否模擬棧呢?通過仔細(xì)觀察方案1發(fā)現(xiàn)queue1出對的數(shù)據(jù)是可以重新再入隊的,只要讓隊列里最后一個元素在隊列頭即可,那么我們很容易想到方案2。 方案2: 將隊列queue1里的數(shù)據(jù)依次出隊,且出隊的數(shù)據(jù)重新放在queue1的隊尾,直到最后一個元素在隊列頭,最后輸出隊列頭的元素即可。整個過程我們可以用下圖表示。單個隊列模擬棧

poYBAGDhSKaAeLi6AAA3CEypaKE570.jpg

單個隊列模擬出棧函數(shù)實現(xiàn)如下:

pYYBAGDhSLCAVo4rAABl3JgrwOM365.jpg

棧實現(xiàn)驗證

下面我們寫一個小程序驗棧實現(xiàn)的正確性。

poYBAGDhSLqAf1UWAADbnrJOENY998.jpg

編譯運(yùn)行輸出如下:

pYYBAGDhSMSAJ1tIAAAysSP7yQc495.jpg

隊列模擬棧完全正確。

責(zé)任編輯:lq6

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4622

    瀏覽量

    93098
  • 數(shù)據(jù)結(jié)構(gòu)

    關(guān)注

    3

    文章

    573

    瀏覽量

    40163
  • 元素
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

    8451

原文標(biāo)題:數(shù)據(jù)結(jié)構(gòu)與算法篇-隊列實現(xiàn)棧

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    JavaWeb消息隊列使用指南

    在現(xiàn)代的JavaWeb應(yīng)用中,消息隊列(Message Queue)是一種常見的技術(shù),用于異步處理任務(wù)、解耦系統(tǒng)組件、提高系統(tǒng)性能和可靠性。 1. 消息隊列的基本概念 消息隊列是一種應(yīng)用程序?qū)?yīng)
    的頭像 發(fā)表于 11-25 09:27 ?171次閱讀

    Linux網(wǎng)絡(luò)協(xié)議實現(xiàn)

    網(wǎng)絡(luò)協(xié)議是操作系統(tǒng)核心的一個重要組成部分,負(fù)責(zé)管理網(wǎng)絡(luò)通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡(luò)協(xié)議(Network Stack)負(fù)責(zé)實現(xiàn) TCP/IP 協(xié)議簇,處理應(yīng)用程序發(fā)起的網(wǎng)絡(luò)
    的頭像 發(fā)表于 09-10 09:51 ?335次閱讀
    Linux網(wǎng)絡(luò)協(xié)議<b class='flag-5'>棧</b>的<b class='flag-5'>實現(xiàn)</b>

    嵌入式環(huán)形隊列與消息隊列實現(xiàn)原理

    嵌入式環(huán)形隊列,也稱為環(huán)形緩沖區(qū)或循環(huán)隊列,是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),用于在固定大小的存儲區(qū)域中高效地存儲和訪問數(shù)據(jù)。其主要特點(diǎn)包括固定大小的數(shù)組和兩個指針(頭指針和尾指針),分別指向隊列的起始位置和結(jié)束位置。
    的頭像 發(fā)表于 09-02 15:29 ?599次閱讀

    TCP/IP協(xié)議的設(shè)計與實現(xiàn)_中文

    電子發(fā)燒友網(wǎng)站提供《TCP/IP協(xié)議的設(shè)計與實現(xiàn)_中文.pdf》資料免費(fèi)下載
    發(fā)表于 07-03 11:28 ?4次下載

    LwIP協(xié)議源碼詳解—TCP/IP協(xié)議的實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《LwIP協(xié)議源碼詳解—TCP/IP協(xié)議的實現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 07-03 11:22 ?3次下載

    斷路器哪幾種

    斷路器哪幾種? 斷路器是一種用于保護(hù)電氣線路和設(shè)備的重要元件,它可以在電路發(fā)生短路或過載時自動切斷電源,以避免設(shè)備損壞和火災(zāi)等危險。斷路器的種類繁多,根據(jù)不同的分類標(biāo)準(zhǔn),可以分為以下幾種: 1.
    的頭像 發(fā)表于 06-10 16:19 ?2362次閱讀

    基于MM32G5330的FlexCAN實現(xiàn)CANopenNode協(xié)議移植

    本文將介紹如何基于靈動MM32G5330的FlexCAN實現(xiàn)CANopenNode協(xié)議的移植,并使用靈動官方提供的開發(fā)板Mini-G5333進(jìn)行驗證。
    發(fā)表于 04-12 09:15 ?1576次閱讀
    基于MM32G5330的FlexCAN<b class='flag-5'>實現(xiàn)</b>CANopenNode協(xié)議<b class='flag-5'>棧</b>移植

    進(jìn)程間通信的消息隊列介紹

    消息隊列是一種非常常見的進(jìn)程間通信方式。
    的頭像 發(fā)表于 04-08 17:27 ?321次閱讀

    MCU專屬隊列功能模塊之QueueForMcu應(yīng)用

    當(dāng)需要從隊列頭部獲取多個數(shù)據(jù),但又不希望數(shù)據(jù)從隊列中刪除時,可以使用 Queue_Peek_Array 函數(shù)來實現(xiàn),該函數(shù)的參數(shù)與返回值與 Queue_Pop_Array 完全相同。
    發(fā)表于 03-20 11:44 ?530次閱讀
    MCU專屬<b class='flag-5'>隊列</b>功能模塊之QueueForMcu應(yīng)用

    TC399 adc能添加到同一個隊列中并得到結(jié)果嗎?加入隊列是否任何限制?

    添加到隊列中并得到結(jié)果。 我的疑問是,了這些不同的頻道和組,我還能把它們添加到同一個隊列中并得到結(jié)果嗎?加入隊列是否任何限制?
    發(fā)表于 03-04 06:33

    變壓器的調(diào)壓方式哪幾種

    常見的大功率級別的調(diào)壓方式哪些? 變壓器調(diào)壓又分為哪幾種形式? 調(diào)壓入合調(diào)壓出合調(diào)壓入分調(diào)壓出分這幾個概念分別是什么意思?
    發(fā)表于 02-21 15:11

    熔斷器幾種形式 熔斷器的滅弧方法哪幾種

    熔斷器幾種形式 熔斷器的滅弧方法哪幾種? 熔斷器是一種用來保護(hù)電路免受過電流和過負(fù)荷的損壞的電器設(shè)備。它們在電力系統(tǒng)和電子設(shè)備中廣泛應(yīng)用,也被稱為電氣保險絲。熔斷器
    的頭像 發(fā)表于 02-06 10:08 ?2546次閱讀

    SPWM哪幾種調(diào)制方式?各有什么特點(diǎn)?

    SPWM哪幾種調(diào)制方式?各有什么特點(diǎn)? SPWM 是一種常用的調(diào)制技術(shù),用于控制交流電壓的形狀和頻率,以便實現(xiàn)電力電子設(shè)備的精確控制。SPWM可以分為基本SPWM和改進(jìn)SPWM兩種調(diào)制方式。下面將
    的頭像 發(fā)表于 02-06 09:45 ?2959次閱讀

    什么是串行端口?哪幾種分類?

    什么是串行端口?哪幾種分類? 串行端口是計算機(jī)中用于進(jìn)行數(shù)據(jù)傳輸?shù)囊环N接口類型,通過單一的數(shù)據(jù)線逐位地傳輸數(shù)據(jù)。與串行端口相對應(yīng)的是并行端口,與串行端口不同,它使用多條數(shù)據(jù)線同時傳輸數(shù)據(jù)。 串行
    的頭像 發(fā)表于 02-02 15:40 ?2190次閱讀

    裸機(jī)中環(huán)形隊列與RTOS中消息隊列有何區(qū)別呢?

    “環(huán)形隊列”和“消息隊列”在嵌入式領(lǐng)域應(yīng)用非常廣泛,相信經(jīng)驗的嵌入式軟件工程師對它們都不陌生。
    的頭像 發(fā)表于 01-26 09:38 ?732次閱讀
    裸機(jī)中環(huán)形<b class='flag-5'>隊列</b>與RTOS中消息<b class='flag-5'>隊列</b>有何區(qū)別呢?
    主站蜘蛛池模板: 天天看黄色| 夜色剧场| 日韩电影中文字幕| 成人一二| 欧美伊人久久大香线蕉综合69| 婷婷丁香五月中文字幕| 国产午夜精品理论片在线| 国产在线一卡| 毛片毛片| 色多多视频官网| 欧美成人亚洲| 一区二区三区四区五区| 黄色午夜剧场| 国产专区视频| 黑森林福利视频导航| 韩国在线a免费观看网站| 国产片翁熄系列乱在线视频| 久久精品视频99精品视频150| 国产资源站| v片视频| 午夜影院在线观看视频| 天天天干| 激情综合网站| 一区在线观看视频| 伊人啪啪网| 欧美怡红院免费全视频| 国产高清在线视频| 色婷婷狠狠干| 91亚洲免费视频| 男啪女色黄无遮挡免费观看| 亚洲涩综合| 天天做人人爱夜夜爽2020 | 性试验k8经典| 亚洲黄色网址大全| 久草资源网| jlzzjlzzjlzz日本亚洲| 亚洲二区在线观看| 天天做人人爱夜夜爽2020| 久久综合狠狠综合狠狠| 天天做天天玩天天爽天天| 91精品日本久久久久久牛牛|