資料結構學習筆記 鍊錶

2021-06-21 13:00:22 字數 608 閱讀 6368

表示式的計算

表示式的計算涉及到棧的操作

對於表示式:(a-b)*(c+d)-e/f

演算法:用到兩個棧,分別是符號棧和運算元棧。輸入表示式時,為了表示表示式輸入完畢,在表示式的最後加上「;」號,也就是說輸入的表示式為(a-b)*(c+d)-e/f;

首先設定各個符號的優先順序,「(」和「)」的優先順序為0,也就是最低的;「+」和「-」的優先順序為1;「*」和「/」的優先順序為2.

步驟:1.首先在符號棧中壓入符號「;」,讀入表示式,將運算元壓入運算元棧,符號壓入符號棧。

2.符號入棧是有規則的,只有當要入棧的符號的優先順序大於棧頂符號的優先順序,或者要入棧的符是"("時(雖然"("的優先順序很低),才可以入棧。否則從符號棧中彈出棧頂符號,從運算元棧依次彈出兩個運算元,進行運算後,將結果壓入運算元棧。隨後繼續比較要入棧符號的優先順序與此時符號棧頂的符號優先順序誰比較高,重複上述過程。

3.當讀入的符號是「)」,而此時符號棧頂的符號是「(」時,則說明括號內的運算已經完成了,將「(」從符號棧彈出。

4.當讀入的符號是「;」,且符號棧頂的符號是「;」時,說明表示式已經計算完畢,結果在運算元棧的棧頂。

多項式的表示與運算

為了節省儲存空間,一般多項式多用鍊錶來表示。

資料結構學習筆記 鍊錶

2.建立鍊錶 3.單向和雙向迴圈鍊錶 4.總結 struct list node 首先了解鍊錶的組成部分 說明 頭節點 在單鏈表的第乙個結點之前附設乙個結點,它沒有直接前驅,稱之為頭結點,頭結點的資料域可以不儲存任何資訊,指標域指向第乙個節點 首節點 的位址。頭結點的作用是使所有鍊錶 包括空表 的頭...

資料結構學習 鍊錶

將從下面4部分進行介紹 首先介紹鍊錶是什麼,然後介紹為什麼定義鍊錶,接著是鍊錶的分類,最後簡單介紹一下鍊錶結點的插入與刪除方法。首先,在介紹鍊錶之前,我們先介紹一下什麼是順序儲存結構。我們知道資料在計算機中的儲存就像貨物在倉庫中的儲存一樣,不但占用一定的空間,還要有乙個標示儲存位置的位址。計算機通過...

資料結構學習 鍊錶

由於不必須按順序儲存,鍊錶在插入的時候可以達到o 1 的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o n 的時間,而線性表和順序表相應的時間複雜度分別是o logn 和o 1 使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶...