最近一直想找一本純資料結構的書來學習,找來找去都沒有找到一本合適的書籍,相比之下國內的書籍之中,嚴蔚敏和吳偉民的還算是經典版了,很多國內其他資料結構教材都參考這本書的。但缺點是很多都是偽**,對程式設計初學者來說有一些難度,甚至有些考研的同學來看這本書有很多還看不懂,並且裡面也有些容易迷惑人的地方。出於對自己資料結構知識的鞏固和給那些考研的同學學習這本書乙個參考,我決定對這本書中大部分的偽**用
c做一下描述。
首先解釋一下本書中容易使人迷惑的地方:
1 一些使用的型別和變數
如:elemtype,status,ok,overflow
等,這些都是一些偽**的描述,我們若是想在**中使用它們,仍需對其定義。如:
typedef int elemtype;
typedef int status; (注:
由於c中沒有bool
型別,故定義為
int).
enum;
2 &的使用
這個操作符,在我們的位運算中屬於與操作:
如: 1000 & 1000 = 1000;
1000 & 0001 = 0000; 在
c中除了相容上面操作符以外,還過載為了取位址操作符,也可說為取指標操作符,即取乙個變數的指標。
在c++
中不但相容了上面兩種形式,又過載了一種形式,取引用操作符,這個和取位址有些類似,但在用法上有些區別。
而在本書中的偽碼中出現了很多這個符號,根據作者的意思,我們應該理解為引用。但引用確實是
c++中的操作符,本書表明的是
c語言描述,這點確實會令許多朋友對此迷惑不解。這裡我們就把它理解為取位址就可以了,所說它在很多函式的生命中出現了。但不妨礙我們這樣去理解他。
好的,就先解釋這麼多,其他有的地方會在各個章節中再給出來。
由於我也是在學習中總結,有不當之處,望請指正,大家共同進步.
資料結構(嚴蔚敏)
說起為什麼重新拿起這本書,著實非常慚愧。是因為面試的時候,第乙個面試官面試完專案之後。第二面試官說我們就當聊聊天,考考資料結構,演算法就好了。結果以乙個問題就把我難住了,這個問題是 雜湊表是什麼?所以我打算花兩天的時間重新把這本書看一遍,並做下筆記,這次我一定會記住。目前,計算機已深入到社會生活的各...
嚴蔚敏資料結構習題3 17
3.17 試寫乙個演算法,識別一次讀入的乙個以 為結束符的字串行是否為形如 序列1 序列2 模式的字串行。其中序列1和序列2中都不含字元 且序列2是序列1的逆序列。例如,a b b a 是屬該模式的字串行,而 1 3 3 1 則不是。include include define stack init...
嚴蔚敏資料結構習題3 31
3.31 假設稱正讀和反讀都相同的字串行為 回文 例如,abba 和 abcba 是回文,abcde 和 ababab 則不是回文。試寫乙個演算法判別讀入的乙個以 為結束符的字串行是否是 回文 這題非常簡單,分別入棧和入隊,然後出棧和出佇列比較,相同即可。這種思路我也是靈光一閃想到的。本以為能沾沾自...