大家好,我現在正在學習數據結構,但是編寫主函數成拉我完成實驗報告的大問題,anybody can help me?關于數據結構幾個典型的問題,就是教幾招學習數據結構的方法也可以呀
熱心網友
好的資源: 數據結構是計算機專業最重要最基礎的一門課,對于有過編程經驗的人,結合自己的編程體會去悟它的思想;對于初學者,撿一種自己最熟悉的語言去分析它總之千萬不要陷在語言的細節上要高屋建瓴的去領會數據結構的思想。而且我覺得隨著編程經歷的豐富對它的體會越深入,最初接觸是對一些思想可能只是生硬的記憶,隨著學習的深入逐漸領悟了很多。奉勸孔孔不要灰心,對于實在弄不懂的東東,就先記住,應付過考試再說。個人學習心得 至于如何學習數據結構,我個人認為合適的方法是,首先從根本上就要認識到數據結構的本質,數據結構和算法之間的密切關系,以及數據結構的應用方法。不然我們很可能陷入各種數據結構的復雜特性中卻還根本不知道到底什么才是數據結構的本質,學了很多很久卻其實什么都沒有弄明白,在這里我說點我個人的一點關于數據結構本質的東西: 學好數據結構最重要的是對程序設計方式和程序語言概念和實現的理解int i; int i[]; struct i{}; ADT i{}; 到底有什么區別,這就是程序設計語言實現的問題了。 定義了一種數據類型就是定義了一類操作int i,j;i=j+1; 這樣的操作在語言本身中實現了,也就是說你不需要關心這樣的操作程序語言是如何完成的,所以int就是基本數據類型 抽象了基本數據類型的就是數據結構。 當你定義了 ADT P{}; 的時候,比如如果P是鏈表,這就要你去實現它各種的操作。而且P能夠完成的所有操作都必須由你去實現,而你實現得基礎就是這些char int float *p。。。基本數據類型。這就是抽象數據類型。 當你把類型定義完成后,剩下的就是算法去完成程序流程的控制。 所以:數據結構+算法=程序 還想說點的是,設計思想,程序設計語言,和數據結構,始終是促進計算機軟件科學發展的最大動力。一般來說都是思想先與語言,然后出現支持這種思想和包含這樣思想的數據類型的語言實現。 具體說: 面向機器編程 機器語言,匯編語言 面向過程編程 C。。。。語言 面向對象編程 JAVA C++ 當然思想畢竟只是思想,你可以用不同的語言實現。但必須說明的是只能用一個層面上的語言實現。比如,機器語言,由于其語言本身抽象層很低,低到了就像給一個對象賦值的操作也要程序員進行位操作。為在語言實現這個層面上,它不支持。為什么說C也可以進面向對象的編程呢?關鍵就在C很好的支持ADT了。他可以用復雜了ADT去代替C++中已經變成基本數據類型的CLASS,但是正是因為要用C完成OO,必須程序員來實現(定義ADT)。所以說,C不適合開發OO軟件。而C++卻恰恰把CLASS定義成了一個基本類型,這樣就完成了OO 這一個層次的抽象。當然由于C++是C的超集,他同樣是完全支持面向過程的。 說了這么多,就是想說說數據結構和程序語言和設計思想的關系。當我們能把數據結構的學習和程序設計語言,程序設計想法相聯系起來的時候,我想我們對數據結構本身的認識已經更加深刻了,我們學習到每一種的新的數據結構的時候我們不再恐慌,因為我們知道了任何一種數據結構都有其共同的共性和特殊的特性,每一種數據結構都是為了一個領域所現實的,從這一方面來說,數據結構本身就具有繼承特性,我們可以用一個繼承樹來表示一個完整的數據結構體系,而每一種數據結構都是繼承體系中的一個子節點。 最后在這里我推薦幾本我覺得比較出色的數據結構方面的教材: 《數據結構與算法------面向對象的C++設計模式》 電子工業出版社出版。在amazon上是五星評價,個人認為其對數據結構的整體描敘和對各種應用算法十分出色。 《Algorithm in c++ I-V》是RS的著作《Algorithm in c》的C++版本,完整的描敘了各種算法,amazon上五星評價,高等教育出版社有其影印版。 《data structrus in C++ with STL》 使用C++標準模板庫來描敘數據結構,是使用泛型設計的方法描敘數據結構的一本全面教材。清華出版了中文版,但有其影印版。 。
熱心網友
支持樓上的。