數據結構c語言版復習
A. 怎麼學習數據結構(嚴蔚敏的c語言版)
1、如果你沒有學過C語言,或者C語言學的不好的時候把數據結構當成一本數學書來學,它所講述的都是一些簡單的圖論。在你的大腦中的主線不能丟失:線性結構,樹結構和圖結構。當你不再考慮復雜的程序設計時,僅僅研究個個離散點之間的關系,似乎數據結構也就不會那麼難了。
2、學習好了抽象的離散點關系後,再鞏固一下你的C語言水平,書中描述的都是類C。因此你只要學習簡單的C定義、判斷、循環語句就基本能看的懂課本中所有程序了。
3、以上都完成後,從數據結構的線性表開始。線性表中順序表似乎是為你學習C語言設計的,學好線性表的鏈表是你起步的關鍵。後面的樹結構,圖結構,排序,查找都少不了鏈式結構,往往這個也是最難的。
4、看程序的時候一定要自己在紙上畫畫,最好先學會畫程序的流程圖,也許那樣你學程序也就會更快一些。
5、數據結構是程序設計的最基本也是最有用的地方,學完之後你會受益匪淺的,也許這本書可以決定你以後的道路或者命運。
6、c語言是最基礎的課程,考計算機的研肯定的學c語言了,怎麼不提前准備呀,嚴蔚敏的書太理論了,我建議你看一本《數據結構案例教程(c語言版)》的書,這本書主要是講的案例,就是演算法的實現,你在結合嚴蔚敏的書看理論,我覺得這樣會容易點吧,數據結構是建立在某一種語言的基礎上實現的,如果你會C++JAVA等語言的話,你當務之急就不要看c語言版的數據結構,C++版的或是JAVA版的數據結構都行,你先拿先來然後再學c語言。
B. 數據結構 (c語言版)胡學綱 課後習題 答案謝謝了,大神幫忙啊
數據結構課程第一章部分習題解答 第一章 緒論 1-4.什麼是抽象數據類型?試用C++的類聲明定義「復數」的抽象數據類型。要求 (1) 在復數內部用浮點數定義它的實部和虛部。 (2) 實現3個構造函數:預設的構造函數沒有參數;第二個構造函數將雙精度浮點數賦給復數的實部,虛部置為0;第三個構造函數將兩個雙精度浮點數分別賦給復數的實部和虛部。 (3) 定義獲取和修改復數的實部和虛部,以及+、-、*、/等運算的成員函數。 (4) 定義重載的流函數來輸出一個復數。 【解答】 抽象數據類型通常是指由用戶定義,用以表示應用問題的數據模型。抽象數據類型由基本的數據類型構成,並包括一組相關的服務。 //在頭文件complex.h中定義的復數類 #ifndef _complex_h_ #define _complex_h_ #include class comlex { public: complex ( ){ Re = Im = 0; } //不帶參數的構造函數 complex ( double r ) { Re = r; Im = 0; } //只置實部的構造函數 complex ( double r, double i ) { Re = r; Im = i; } //分別置實部、虛部的構造函數 double getReal ( ) { return Re; } //取復數實部 double getImag ( ) { return Im; } //取復數虛部 void setReal ( double r ) { Re = r; } //修改復數實部 void setImag ( double i ) { Im = i; } //修改復數虛部 complex & operator = ( complex & ob) { Re = ob.Re; Im = ob.Im; } //復數賦值 complex & operator + ( complex & ob ); //重載函數:復數四則運算 complex & operator – ( complex & ob ); complex & operator * ( complex & ob ); complex & operator / ( complex & ob ); friend ostream & operator << ( ostream & os, complex & c ); //友元函數:重載<< private: double Re, Im; //復數的實部與虛部 }; #endif //復數類complex的相關服務的實現放在C++源文件complex.cpp中 #include #include #include 「complex.h」 complex & complex :: operator + ( complex & ob ) { //重載函數:復數加法運算。 complex * result = new complex ( Re + ob.Re, Im + ob.Im ); return *result; } complex & complex :: operator – ( complex & ob ) { //重載函數:復數減法運算 complex *result = new complex ( Re – ob.Re, Im – ob.Im ); return * result; } complex & complex :: operator * ( complex & ob ) { //重載函數:復數乘法運算 complex *result = new complex ( Re * ob.Re – Im * ob.Im, Im * ob.Re + Re * ob.Im ); return *result; } complex & complex :: operator / ( complex & ) { //重載函數:復數除法 查看更多答案>>