堆棧是兩種數據結構。
堆棧都是一種數據項按序排列的數據結構,只能在一端 (稱爲棧頂(top)) 對數據項進行插入和刪除。
在單片機應用中,堆棧是個特殊的存儲區,主要功能是暫時存放數據和地址,通常用來保護斷點和現場。
要點:
堆,隊列優先,先進先出。
棧,先進後出
開始放入數據的單元叫做“棧底”。
數據一個一個地存入,這個過程叫做“壓棧”
在壓棧的過程中,每有一個數據壓入堆棧,就放在和前一個單元相連的後面一個單元中,堆棧指示器中的地址自動加1。
讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減 1。
這個過程叫做“彈出pop”。如此就實現了後進先出的原則。
堆棧是計算機中最常用的一種數據結構,比如函數的調用在計算機中是用堆棧實現的。
堆棧可以用數組存儲,也可以用以後會介紹的鏈表存儲。
雪梨作業
一: 已知一棵二叉樹,如果每一層的結點數都達到最大值,則該二叉樹就是滿二叉樹。假如一棵滿二叉樹的層數爲k,請問它的結點個數。(30分)
要求:寫出詳細的推導過程,並給出結論。
二: 隨着私家車保有量劇增,停車難已然成爲一種普遍問題,現有一個廢棄死衚衕,居委會打算改造成臨時停車場。然而該衚衕的寬度只能允許一輛私家車行駛進入(倒入)或倒出(開出)。爲了不影響其他鄰居用車,每輛車上放一張溫馨提示小紙條,留下車主的聯繫方式,以備挪車。
已知六輛汽車冀A001, 冀A002, 冀A003, 冀A004, 冀A005 和 冀A006 依次停入過該衚衕,管理人員進行了持續的觀察,記錄下六輛車離開的衚衕的順序是冀A003, 冀A005, 冀A004, 冀A006, 冀A002, 冀A001,請分析該衚衕最少能容納多少輛汽車。(30分
要求:寫出詳細的計算過程,並說明你的分析用到哪些已學知識。
三: 畢業論文(設計)是本科人才培養方案中的重要組成部分, 是培養學生創新思維和實踐能力的有效途徑,是學生綜合運用所學知識和技能分析問題、 解決問題的主要教學實踐環節,是全面反映學生綜合素質和能力的重要標誌。
目前大四同學正在進行畢業論文(設計)開題工作。根據實踐性要求,畢設期間所開發的程序難度和工作量都要足夠,持續時間大概6個月。請用已學知識分析並總結,給三年後的自己一些開發上的建議。(40分)
要求:根據所學知識,用自己的語言總結,切忌簡單羅列和大段文字的複製與粘貼。
我的答案
第一題:
結論:
因爲滿二叉樹只有最後一層有葉子節點,滿二叉樹如果有k層的話,那它就有2^k-1個結點.
推導過程:
在二叉樹的第i層上最多有2^ i-1 個節點
1層 1個 2^0
2層 2個 2^1
3層 4個 2^2
.....
i層 2^ i-1個
利用等比數列求和公式:
Sn=a1(1-q^n)/(1-q)(q不等於 1的公式)
a1=1,
q=2,
Sn=(1-2^n)/(1-2)=2^n-1
滿二叉樹如果有k層…那它就有2^k-1個結點.
第二題:
答:該衚衕最少能容納4輛汽車。
用到算法的堆棧問題:
堆,隊列優先,先進先出。
棧,先進後出
在壓棧的過程中,每有一個數據壓入堆棧,就放在和前一個單元相連的後面一個單元中,堆棧指示器中的地址自動加1。
讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減 1。
這個過程叫做“彈出pop”。如此就實現了後進先出的原則。
堆棧是兩種數據結構。
堆棧都是一種數據項按序排列的數據結構,只能在一端 (稱爲棧頂(top)) 對數據項進行插入和刪除,
就相當於本題中的停車場只能從一端進入或倒出,並且該衚衕的寬度只允許一輛車進入或倒出一樣。
詳細的推導過程:
分析停車場的狀態:
001進入,002進入,003進入
003駛出
004進入,005進入
005駛出,004駛出
006進入
006駛出,002駛出,001駛出
因爲某一時刻最多有4輛車同時在停車場中。所以,該衚衕最少能容納4輛汽車
第三題:
論文一般由題名、作者、目錄、摘要、關鍵詞、正文、參考文獻和附錄等部分組成。
題目:應簡潔、明確、有概括性,
目錄:寫出目錄,標明頁碼。正文各一級二級標題
摘要:要有高度的概括力,語言精練、明確
關鍵詞:從論文標題或正文中挑選3~5個最能表達主要內容的詞作爲關鍵詞
正文:畢業論文正文字數一般應在5000字以上,畢業論文正文:包括前言、本論、結論三個部分。
參考文獻:等論文末尾要列出在論文中參考過的所有專著、論文及其他資料
附錄:對於一些不宜放在正文中,但有參考價值的內容,可編入附錄中。
給三年後的自己一些開發上的建議:
1,在心理上認清事實。不要有畏難心理,既然必須要做,那就早點開始準備。
2,合理安排每天的時間。如果面臨實習和寫論文兩個重要的大事情,必須合理安排每天的時間,不虛度每分每秒。
3,做事前規劃好做事方法。在做一件事之前,最好把各方面能想到的細節都考慮清楚再下手。
4,乾脆利落的展開行動。做好前期準備,就要開展行動。時間就是金錢和生命,這事拖着那事也拖着怎麼能行。也許自己能夠利用的空餘時間並不多,所以要抓住每次機會,磨練自己的做事能力,提升自己的專業水平。