2026《數據結構》考研復習筆記五(棧、隊列)

棧、隊列

  • 一、棧
    • 1.卡特蘭數
    • 2.不合法的出棧序列
  • 二、隊列
    • 1.循環隊列
    • 2.輸入輸出受限隊列(四個數1234)
  • 三、算法
    • 1.棧在括號匹配中的應用
    • 2.中綴表達式求值(通過轉化為后綴表達式再后綴表達式求值)
    • 3.中綴表達式轉化為后綴表達式
    • 4.后綴表達式求值

一、棧

1.卡特蘭數

當n個不同元素依次入棧,一共有C(2n,n)/(n+1)種合法出棧序列
(證明寫在后面的筆記上了,由于太費時間,就不再細寫電子版了)

2.不合法的出棧序列

  1. 三個數1,2,3:312序列
  2. 四個數:1開頭-1423,2開頭-2413,3開頭-3412、3142、3124,4開頭-4123、4132、4213、4231、4312

在此筆者提醒一句:請認真證明上述結論并且找到規律,將4位數不合法出棧序列熟練掌握(達到快速寫出的程度),這個出棧序列沒有遞推規律,但是依然有技巧——比如當某個數出棧時,前面的入棧序列是確定的,而曾經真題也考過類似題目

二、隊列

1.循環隊列

關于循環隊列,一個非常讓人模糊的點在于——尾指針rear和頭指針front初始化的值。你有時候發現rear=front,有時候發現rear=MaxSize-1,front=0。而且有兩年真題分別考察了這個區別。實際上,經過筆者研究,關于循環隊列,一共有兩種不同的入棧方式,進而導致了兩種方式的“初始化”、“隊長”、“隊滿”(默認犧牲一個存儲單元)操作都不相同

  1. rear先進位,再判滿,然后寫入:這種情況必然導致rear寫入完畢后指向隊尾元素,因此初始化rear在front前,隊長(rear+1-front+MaxSize)%MaxSize,隊滿rear先進位后有(rear+1)%MaxSIze==front
  2. rear先判滿,再寫入,然后進位:這種情況必然導致rear進位后指向隊尾元素的下一個元素,因此初始化rear=front,隊長(rear-front+MaxSize)%MaxSIze,隊滿有(rear+1)%MaxSize==front(不進位先判滿)

2.輸入輸出受限隊列(四個數1234)

  1. 不能由輸入受限的雙端隊列得到的序列為:4213,4231(2不能第二個輸出)
  2. 不能由輸出受限的雙端隊列得到的序列為:4132,4231(3不能夾在12中間)
    請自行推導該序列并理解括號后面總結的規律,達到回憶便可推理出來的效果(不要死記硬背)。曾有一年考察了該知識點,且輸入序列為五個數(abcde),如果沒有四個數的二級結論的積累,考場上所耗費的時間可想而知,或者說,這道題就是為記住該二級結論的考生所出的。

三、算法

1.棧在括號匹配中的應用

2.中綴表達式求值(通過轉化為后綴表達式再后綴表達式求值)

3.中綴表達式轉化為后綴表達式

4.后綴表達式求值

此處不再給出具體代碼和推導過程,只給出二級結論以及復習重點(不包含數組和矩陣)。由于上述內容足足耗費了我兩天的精力,目前身心憔悴,最后再粘貼一下紙質版筆記,結束該階段的總結(我總結的筆記含有上述二級結論的真題,這也是為什么我特意強調該部分的原因)

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902977.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入解析微軟MarkitDown:原理、應用與二次開發指南

一、項目背景與技術定位 微軟開源的MarkitDown并非簡單的又一個Markdown解析器,而是針對現代文檔處理需求設計的工具鏈核心組件。該項目誕生于微軟內部大規模文檔系統的開發實踐,旨在解決以下技術痛點: 大規模文檔處理性能:能夠高…

pyinstaller打包paddleocr發生錯誤解決

python環境是3.9,github paddleocr v2.10.0。 一個非常簡單的案例如下,打包時發生錯誤。 import requests from paddleocr import PaddleOCR if __name__ "__main__":paddleocr_ocr PaddleOCR(use_angle_clsTrue, langch,det_model_dirmode…

算法之回溯法

回溯法 回溯法定義與概念核心思想回溯法的一般框架偽代碼表示C語言實現框架 回溯法的優化技巧剪枝策略實現剪枝的C語言示例記憶化搜索 案例分析N皇后問題子集和問題全排列問題尋路問題 回溯法的可視化理解決策樹狀態空間樹回溯過程 回溯法與其他算法的比較回溯法與動態規劃的區…

命令行指引的嘗試

效果 步驟 首先初始化一個空的項目,然后安裝一些依賴 npm init -y npm install inquirer execa chalk ora至于這些依賴是干嘛的,如下圖所示: 然后再 package.json 中補充一個 bin 然后再根目錄下新建一個 index.js , 其中的內容如下 #!/…

探秘LLM推理模型:hidden states中藏著的self verification的“鑰匙”

推理模型在數學和邏輯推理等任務中表現出色,但常出現過度推理的情況。本文研究發現,推理模型的隱藏狀態編碼了答案正確性信息,利用這一信息可提升推理效率。想知道具體如何實現嗎?快來一起來了解吧! 論文標題 Reasoni…

流量抓取工具(wireshark)

協議 TCP/IP協議簇 網絡接口層(沒有特定的協議)PPPOE 物理層數據鏈路層 網絡層: IP(v4/v6) ARP(地址解析協議) RARP ICMP(Internet控制報文協議) IGMP傳輸層:TCP(傳輸控制協議)UDP(用戶數據報協議)應用層…

.NET倉儲層在 using 塊中創建 SqlSugarClient 的風險

如題&#xff0c;先看代碼示例 using 塊的使用 public ISugarQueryable<T> GetSet(Expression<Func<T, bool>> whereExpression null) {using (SqlSugarClient dbClient SqlSugarInstance.GetInstance()){var query dbClient.Queryable<T>();if (w…

C語言----函數棧幀講解

目錄 1.函數棧幀是什么? 2. 理解函數棧幀能解決什么問題 3、函數棧幀的創建和銷毀具體過程 3.1 什么是棧 3.2 認識相關寄存器和匯編指令 3.3函數棧幀的創建和銷毀 3.3.1 預備知識 3.3.2 函數的調用堆棧 3.3.3 準備環境 3.3.4 轉到反匯編 3.3.5 函數棧幀的創建 3.3…

代碼隨想錄學習筆記---二叉樹

學習目標&#xff1a; 學習代碼隨想錄–二叉樹 每天學習1道,復習兩道 學習內容&#xff1a; 2025.4.7 復習內容: 24. 兩兩交換鏈表中的節點 25. 最大二叉樹 學習內容 26. 合并二叉樹 2025.4.8 復習內容: 27. 二分查找 28. 合并二叉樹 29. 27. 移除元素 學習內容: 30. 二叉…

Git ——提交至github,Vercel拉取,更新不了項目的問題解決

首先因為github上有個錯誤 1 failing check Vercel - No GitHub account was found matching the commit author email address 發現好像是vercel拉取不了項目&#xff0c;vercel登錄的郵箱與我此次提交更改的郵箱不匹配&#xff0c;查看Git的user確實如此&#xff08;之前的…

Vue3項目中 npm 依賴安裝 --save 與 --save-dev 的區別解析

這兩個命令的區別如下&#xff1a; bash npm install --save types/crypto-js # 安裝到 dependencies&#xff08;生產依賴&#xff09; npm install --save-dev types/crypto-js # 安裝到 devDependencies&#xff08;開發依賴&#xff09; 核心區別 依賴分類不同…

品牌如何通過朝日新聞出海日本?——某企業日本媒體發稿實戰

文 | 言同數字亞太傳播實驗室 一、日本市場的隱形門檻&#xff1a;中國品牌的三大痛點 案例背景&#xff1a; 某中國靈芝保健品企業&#xff08;代號"ForestLife"&#xff09;&#xff0c;產品雖獲中國/歐盟有機認證&#xff0c;但在日本市場面臨&#xff1a; 認知…

鴻蒙-試一下屬性字符串:除了Span之外,如何在同一個Text組件中展示不同樣式的文字

文章目錄 前言簡介有哪些類型拉出來溜溜Text SpanStyledString其他CustomSpan先看一下構造函數onMeasure(measureInfo: CustomSpanMeasureInfo): CustomSpanMetricsonDraw(context: DrawContext, drawInfo: CustomSpanDrawInfo) 遺留問題 前言 在開發中&#xff0c;經常會遇到…

Nginx 安裝與配置全流程指南(2025 最新版)

一、環境準備與依賴安裝 1.1 系統要求 操作系統&#xff1a;支持主流 Linux 發行版&#xff08;Ubuntu 20.04/CentOS 7/Debian 10&#xff09;硬件配置&#xff1a;內存 ≥512MB&#xff0c;磁盤 ≥10GB 可用空間&#xff08;建議使用 SSD&#xff09;網絡要求&#xff1a;開…

【LeetCode 熱題 100】滑動窗口最大值 / 最小覆蓋子串 / 輪轉數組 / 缺失的第一個正數

??個人主頁&#xff1a;小羊 ??所屬專欄&#xff1a;LeetCode 熱題 100 很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~ 目錄 子串和為 K 的子數組滑動窗口最大值最小覆蓋子串 普通數組最大子數組和合并區間輪轉數組除自身以外數組的乘積缺失的…

golang的cgo的一點小心得

最后有個項目需要涉及到cgo&#xff0c;在這塊以前用的不多&#xff0c; 這次略微用得深入了一點&#xff0c;記下來幾點以備以后使用 本質上cgo去用的時候就是遵守一些ABI而已&#xff0c;總體而言&#xff0c;盡量避免復雜結構的來回傳遞。1 對于變長參數&#xff0c;只有…

異構網絡環境下的切換策略研究

移動互聯網應用快速崛起,現有的無線接入技術有,無線局域網(Wireless Local Area NetWork,WLAN),移動蜂窩網絡(4G,5G),無線廣域網(Wireless Wide Area Network,WWAL)以及衛星通信網絡等。多接入技術方便用戶通信,還符合多業務場景。這種多無線接入技術共存的網絡環…

人工智能賦能美妝零售數字化轉型:基于開源AI大模型的S2B2C商城系統構建

摘要 在消費升級背景下&#xff0c;美妝行業正經歷從傳統賣場向智能體驗空間的轉型。本文以"未來商店"為研究對象&#xff0c;探討開源AI大模型與S2B2C商城系統的協同效應&#xff0c;揭示人工智能技術如何重構"人-貨-場"關系。通過實證研究發現&#xff…

計算機視覺中的正則化:從理論到實踐的全面解析

&#x1f31f; 計算機視覺中的正則化&#xff1a;從理論到實踐的全面解析&#x1f31f; 大家好&#xff01;今天要和大家分享的是在計算機視覺&#xff08;CV&#xff09;領域中非常重要的一個概念——正則化&#xff08;Regularization&#xff09;。無論你是剛開始接觸深度學…

Linux字符設備驅動開發的詳細步驟

1. 確定主設備號?? ??手動指定??&#xff1a;明確設備號時&#xff0c;使用register_chrdev_region()靜態申請&#xff08;需確保未被占用&#xff09;。??動態分配??&#xff1a;通過alloc_chrdev_region()由內核自動分配主設備號&#xff08;更靈活&#xff0c;推…