《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明


 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明

 

先附上文檔歸類目錄:

課本源碼合輯  鏈接☛☛☛ 《數據結構》課本源碼合輯

習題集全解析  鏈接☛☛☛ 《數據結構題集》習題解析合輯

 

★教材及習題源碼下載★

    鏈接☛☛☛  嚴蔚敏《數據結構》課本與習題源碼(GitHub倉庫)

  嚴蔚敏《數據結構》課本與習題源碼

 

 歡迎Star項目,如有疑問,請在Issues反饋。

 

 

博主有話說:

01.自學編程,難免思路阻塞,故我在本博客陸續更新了嚴蔚敏,吳偉民版《數據結構-C語言版》各章節的課本源碼和配套習題集答案解析,目的是為了整理數據結構中的知識點,並與網友交流意見,集思廣益,共同進步。(目前已更新完畢,細節待完善

       ★注★ 左側隨筆分類下用兩個欄目<課本源碼><習題解析>來存放本主題文檔。

<課本源碼>目錄下實現了三種數據結構源碼:

                   一:課本中重點描述過的數據結構與算法;

                   二:課本中提到,但沒有詳細描述的數據結構

                   三:課本中未提到,但在習題集中涉及到的數據結構

<習題解析>目錄下存放了配套習題集中每章的習題解答,但對於算法設計題,要注意其相對路徑,因為涉及到了別的文檔的引用。

各文檔的組織方式參見附錄二中的圖示,有疑問聯系博主。

 

02.本源碼與解析涵蓋了《數據結構》課本和習題集兩部分,課本和習題集分別以下圖書籍為參照(我有左邊的紙質版和右邊的電子版,貌似內容沒區別):

 

 

03.所有源碼實現均使用C語言,遵循C99標准,使用C-Free 5(C-Free置gcc編譯器,編譯時,需要在菜單欄,定位到構建-->構建選項-->類別-->C Language,勾選第三個:"ISO C99 plus GNU extensions [-std=gnu99]",即編譯選項用-std=gnu99,而不是-std=c89或者-std=c99)測試通過(不要在CFree里創建工程,如果確實想在工程里運行,那文件互相引用的方式需要改寫)。(是的,初學C語言,鄭重推薦CFree這個小巧的IDE(win7),簡潔、易用、強大!出於兼容性原因,win10上更推薦CLion。注意事項參見第6條)

 附下載鏈接CFree5

 

04.為了便於引用、查閱,各章內容在計算機中分文件夾存放,其中,《▲課本算法實現》中存放對課本中算法的實現,《▼配套習題解析》存放對題集中習題的解答,各源文件按章、節組織,組織方式見附錄二。

 

★★★05.注意各文檔引用.h文件或.c文件時的相對路徑。為保證源碼中對各.h或.c文檔的引用有效,請保持各文檔的相對位置固定。

 

★★★06.對於主文檔(含有main函數的文檔),#include自定義源碼時引入的是.c文件而不是.h文件,其原因是測試用的gcc編譯器支持不創建工程的情況下直接編譯。如果是在Visual Studio等微軟的編譯器下做測試,則必須先創建工程,並引入.h文件,而且,對全局變量的定義等可能需要作出修改,變為帶有extren的形式。對於使用VC6或Visual Studio,還有其他編譯器產生的各種編譯問題,請自行百度解決。

 

★★★07.部分類型定義名稱、宏名、函數名和算法步驟與《數據結構》原書略有區別,但算法思想與原書一致,這樣“改寫”主要是為了易於區分各名稱並簡化操作。部分文件的測試數據設置為單獨的文檔而不從控制台錄入,目的是為了測試時方便,避免重復錄入數據。

 

★★08.如果你使用的編譯器不是CFree,請注意文件編碼格式(當然,如果是你自己從頭敲代碼的話,忽略這一條!)

 

09.各算法並非100%完善,未考慮所有意外,未做過多輸入與輸出驗證。

 

10.有的數據結構在創建之前需要初始化,有的創建和初始化合為一體。

 

11.大多數組0號單元棄用,或用作計數器

 

12.留意全局變量和類型定義、宏定義。

 

13.算法的測試文檔中有些看似“多余”的縮進是為了區分不同功能模塊,便於瀏覽。

 

★★★14.在習題集解析中,不同人可能會對同一個題的理解有差別,所以這里只是表達我個人的想法,不代表其他任何人的看法。

 

15.所有教材源碼已上傳到Github,僅供參考,望大家勿抄作業。

 

★★★16.若對代碼有疑問,或者發現有錯誤,再或者有好的建議、思路,都可以聯系博主。

 

17.緒論中的Scanf.c文件包含一個Scanf函數,用來從文件中讀取西文字符。設計這個函數的原因是減少測試工作,避免每次測試時在控制台手動輸入數據...…

 

18.關於IDE,前面說過,學習C語言,從我個人審美角度,在win7上,新手只推薦CFree,配合mingw這個編譯工具集,簡潔強大又好看。除此之外,還推薦CLion(在win10上同樣好用)CLion和CFree使用的編譯環境一樣,不同的是,這個軟件更“智能”,顏值也很高,操作體驗也不錯,而且開發C++也毫無壓力,不過對電腦配置可能要求高一點點。如果你偏愛微軟,也可以去使用他們家的VS除了體積龐大操作復雜外,也是個非常強悍的IDE,開發大型項目必備,但是初學者就算了吧,不太建議...當然,現在微軟有了輕量級的編輯器VS Code,但這個工具不帶編譯功能,需要自己配置工具鏈,同樣不推薦初學者使用...

 

19.關於C/C++的編譯器,粗略分為微軟和GNU吧,微軟的一般集成在自己的IDE里,GNU的有gcc(C語言)和g++(C++)等,這里的CFree里使用的mingw就是gcc和g++等的一個集合,如果想使用最新版,可以自行去下載配置。

 

20.★★如果沒有認真學過一門編程語言,請不要嘗試這門課程,或者說,即使想學,也不要從這本書開始。這本書的定位應該是假設你已經熟悉某一種語言,不限於C語言,也可以是C++、Java、Python等。當然,懂得C/C++最好了,因為這本書的示例代碼就是C/C++的混編么(絕大部分是C)。

 

21.待續…

 

附一:《數據結構》課本源碼《▲課本算法實現》目錄下的文件組織方式,《▼配套習題解析》部分的組織方式與此類似,只不過每一章內部存放的是習題解析和測試文檔。

附二:源碼目錄組織(注意保持各文件相對位置固定):

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM