數據結構編程筆記一:環境配置和必要的說明

學過數據結構的程序員都看過嚴蔚敏的《數據結構(C語言版)》吧,這本書被網上吐槽的很厲害,說它描述晦澀難懂,圖解少,步驟跳躍等等。我看這本書的時候也有同感,但我還是選擇了好好複習C語言,然後一遍遍的反覆琢磨它,每次學會一塊我都會很高興,因爲編程水平和對數據結構的理解都有所增進和提高。我認爲僞代碼更能突出的算法本質,省略掉了具體編程語言語法的東西反而更容易抓住本質。而且我覺得初學者如果真的直接拿到能運行的代碼,大多數人應該都是看着在電腦上敲一遍,過手不過心了,我們是程序員,不是打字員,所以初學的話還是不要直接看到能運行的源代碼的好。儘量逼着自己把算法變成代碼,鍛鍊自己的C語言編程能力。

說的就是這本書:
這裏寫圖片描述

爲了幫助後來人更好的理解算法,我在學習過程中將每個重要的算法都寫好放在碼雲上,方便大家下載閱讀。
地址:https://git.oschina.net/601345138/DataStructureCLanguage.git

我用的工具是DevC++ 5.5.3版本。想要的童鞋可以上網搜,也可以上這裏下載,我個人覺得這個工具比VC6要好,VC6比較挑剔環境,Win7 64位以上的操作系統已經沒法安裝了。但是DevC++可以運行在Win XP - Windows 10的任何一個版本的操作系統上,而且支持中文,完全免費。DevC++的內核用的是GCC的內核,編譯檢查比較嚴格,所以那它寫的代碼移到Linux/Unix平臺上去編譯也應該是不會出錯的。VC6檢查比較松,好些代碼在他上面調試沒問題,換到別的平臺就不行了,編譯過不去。
下載地址:http://www.121down.com/soft/softview-35836.html

安裝方法:
運行下載好的安裝程序:
安裝程序文件

進入安裝界面,目前只能選英文,先按英文(English)裝上,語言稍後可以設置。
選擇語言

點擊OK繼續安裝,一路Next,改一下安裝目錄,別裝C盤,等待安裝完成:
這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

點擊Finish完成安裝。

裝完之後在彈出的嚮導選簡體中文,否則打開界面是英文:
這裏寫圖片描述

建議大家把界面風格調整成Visual Studio,這樣習慣VS和VC6的童鞋會更舒服些。
這裏寫圖片描述

完成剩餘設置,一路Next,直到主界面打開:
這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

依次點擊菜單欄上的“工具”->“編輯器選項”,進入界面風格設置窗口
這裏寫圖片描述

找到“顯示”選項卡,把字體調到15號是最佳實踐,不大不小,看着舒服。
這裏寫圖片描述

點擊“確定”保存設置。

可以打開一個源文件試試,可以看到界面大致是這樣的:
這裏寫圖片描述

編譯運行的方法非常簡單,可以用菜單或者工具欄上的按鈕:
編譯運行方法

運行程序結束後,會看到這樣一段信息

--------------------------------
Process exited with return value 0
Press any key to continue . . .

這是程序退出後留下的信息,告訴我們主方法返回值,並且幫我們留住屏幕,方便截屏和觀察運行結果,讓程序不要一閃而過。按回車就可以關掉這個窗口。

如果程序運行出錯,會彈出這樣的窗口(個人經驗,多半是指針出了問題或者是越界了):
出錯

再次提醒大家,應該好好複習C語言之後再來看程序,我做的每個程序註釋都很詳細,幾乎每行都有,書上覆雜難懂的語法我都做了簡化,有的簡化成了我們常見的形式,有的在旁邊標註了等價的條件。對於嚴蔚敏書上很多不規範的編碼風格進行了修正:所有的條件和循環就算只有一句也要寫上大括號,所有精簡的有編程技巧的表達式能拆就拆,化解成大家能看懂的格式:
譬如這段表達式,初學C的人可能會看不懂,我在旁邊標註了等價條件。

//檢查內存分配是否成功 
 if(!Lc.elem){ //if(!Lc.elem) <=> if(Lc.elem == NULL)
    printf("內存申請失敗!");
    exit(OVERFLOW); //若內存分配失敗,則退出程序
 }//if

所有的函數都清楚地寫明瞭函數的名稱,每個參數的含義、類型和其他約束,函數的返回值會返回什麼等等:

/*
    函數:DestoryList_Sq
    參數:SqList &L 被銷燬的線性表
    返回值:狀態碼,操作成功返回OK,操作失敗返回ERROR 
    作用:銷燬線性表並釋放內存空間
*/
void DestoryList_Sq(SqList &L) {
    free(L.elem);
    L.elem = NULL;
    printf("內存空間釋放成功!\n");  
} //DestoryList_Sq

編碼嚴格按照軟件工程規範進行,有利於培養良好的編程習慣,有利於以後的工作!嚴蔚敏的書編碼規範非常不好!我們要學她的算法、思想和編程技巧,但是別去學她的編碼風格,太糟糕了!

推薦大家幾本書:
《大話數據結構》:這本書我感覺不錯,講得通俗易懂,不像嚴蔚敏的書。
這裏寫圖片描述
《數據結構(C語言描述)》(殷人昆):殷人昆的書比較細,好些你想不到的細節問題書上都會提示你。這本書有第二版了。
這裏寫圖片描述
《數據結構(C語言版)(第三版)》(李雲清):我們老師推薦給我的,我覺得講解挺清楚的,該講的知識點都有講到,就是描述有點學術化,但不至於難懂。
這裏寫圖片描述

嚴蔚敏出新書了:
《數據結構(C語言版)(第二版)》(嚴蔚敏):嚴蔚敏的新作,我去噹噹看了一下,比第一版強了些,開始注重軟件工程規範了,也有習題了,內容我沒細看。
這裏寫圖片描述

大家如果感興趣,可以關注我的博客,後續會一個專題一個專題地貼出代碼。
碼雲下載更方便哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章