㈠ 數據結構怎樣學習
回答:毛毛琨
學長
4月17日 14:09 不同意樓上所有人的說法,因為他們似乎不太重視數據結構。
首先回答你的問題,我認為學習資料庫之前應該學習離散數學和線性代數。這兩門課中就有一些數據結構的演算法,比如哈希函數、最短路進演算法等等,此外還有一些運算的技巧,比如矩陣的運算技巧和存儲技巧。當你對離散和線性代數有一定基礎後,接觸數據結構課程就比較容易了。我們當初學習的是高等教育出版社的用C語言描述的數據結構,基本上前幾章在C中講過,但必須要仔細聽,因為他滲透了更多的、更有變化的演算法,比如鏈表的各種操作和類型,尤其注意的是雙向循環鏈表、十字鏈表。此外隊列要注意循環隊列。第二個重點就是樹,首先要知道書的存儲結構和邏輯結構是怎樣的,然後要重點了解樹的各種遍歷,因為不同遍歷形成不同種(前,中,後)綴表達式。此外哈夫曼樹的建立,哈夫曼編碼解碼也是很重要的,因為他是當今數據壓縮的最經典的演算法之一。然後就是排序和查找演算法,大多數用到樹的知識,一定要記住排序和查找演算法,因為他幾乎是程序的靈魂模塊。各演算法的事件復雜度和穩定性的比較也要當作重點。總之學習數據結構不要看他的用什麼語言描述,應該看他的實質,太在乎C中的指針的操作只會影響你的學習。
㈡ 數據結構該怎麼學啊
如果你決定考研的話,建議把C學好。如果你打算工作,可以學學C#。
不知道你為什麼一開始就選擇了C#。還是慢慢來吧。好運!
㈢ 數據結構怎麼學啊!
巧啊,我也是軟體工程專業的,現在跟你們差不多,學到二叉樹了,前邊的我感覺線性表的鏈式存儲、順序存儲就是對數組的操作、熟練指針鏈表的操作應該很容易了就。我學線性表的操作時是把以前的又看了一遍,特別是鏈表那一章,
數據結構的演算法很抽象、都是偽代碼
但是你要多動手去實現它,熟練了也就覺得他不是那麼難了
說出來不怕你笑啊,我學數據結構的心理是想到了大一時學習C++,我就把現在比做大一,把數據結構比作C++,你想想啊,大一時學習C++多難啊,最後不是也學會了嗎?
感覺學習東西需要一個過程,不過你確實是要下功夫
編程不就是一遍一遍的敲代碼嘛?多實現、多思考、有問題就像老師同學請教、或者上網搜索!
呵呵~我跟你應該是一個階段的吧,我只是把我的說出來了,O(∩_∩)O~希望對你有用1
㈣ 新手如何學習數據結構
要想掌握數據結構與演算法要點一般如下:
1、要熟悉數據結構整個大綱。如:
邏輯存儲結構:分為線性結構和非線性結構。
線性結構:順序表、單鏈表、棧、隊列、串、廣義數組。
非性結構:二叉樹、圖。
物理存儲結構:分為順序存儲和鏈式存儲。
基本操作:插入、刪除、更新、查找,逆轉等。
2、要熟悉數據結構各類專有名詞含義;
3、掌握時間復雜度的計算或推導(即大O)。
4、重點掌握非線性二叉樹的性質推導和證明(這里涉及到了一些數學知識),和圖。
多上機調試各章的源碼,只有這樣才能加深對演算法本身存在的思想的體會。學習數據結構其實就是學習演算法思想。
㈤ 怎樣快速自學數據結構
看視頻吧,先把電子科技大學——數據結構那個視頻看完,估計基礎就差不多了吧
㈥ 數據結構怎麼自學完全看不懂
學數據結構還是要學以致用,要把書上的代碼用C寫出來,什麼單鏈表啊,雙鏈表啊,棧,隊列,樹,圖都是要把類寫出來的,短時間內不可能一下子促成
㈦ 怎麼學好數據結構
數據結構作為大學計算機相關專業的學生來說是一門十分重要的課程,無論是以後演算法思想的滲透,還是工作中程序代碼的處理,都離不開數據結構的影子。但是因為數據結構知識較多,並且比較抽象,對於很多人來說學它就感到頭疼。其實大可不必,數據結構的學習自然有其對應的方法。
還有一點,要想學習好數據結構,好的課程是必不可少的,如果大學老師講的足夠好的話完全可以帶你領略數據結構的美麗風景,如果你想自學成才的話,推薦浙江大學陳越姥姥的課和清華大學鄧俊輝老師的課,都十分透徹易懂。
㈧ 數據結構怎麼學習
編程,編程再編程,只看書是沒有多大效果的,先理解每一種數據結構,然後對每一種基本功能試著去寫代碼,日積月累自然就可以了。路是一步一步地走下來的,年輕人慢慢來。
㈨ 到底該如何學習數據結構
昨天買了本《大話數據結構》,之後就開始看。數據結構給我的印象就是一大堆code,自己實現很麻煩,而且很容易出detail errors,望著書上的代碼,我在想,難道我真要把他們都能獨自寫下來?其實想想怎麼也是不必的,說最低級的要求,工作中一下代碼然後會調用functions就OK了,更何況有C++的STL,另外在ACM這種競賽中,STL也是允許的,更何況可以帶material。而且即使自己都能獨自寫下來,那麼不常寫也多少會忘點細節方面的問題(比如錯誤處理漏條件),因為自己當時寫代碼不一定能想得那麼嚴謹。可見,那些代碼are not important,重要的還是思維。那些代碼只是develop your thinking的tools而已,並不是說要求你一定能全都write下來,當然,如果你understand it completely,那麼只要你的coding能力過關,那寫出代碼不在話下,只不過容易出現細節問題罷了,代碼上的細枝末節不是應該我們關注的東西。也就是說,那些實現性的代碼是幫助你學習的,但並非你的歸宿,你可以理解這個數據結構後使用代碼去describe你的想法,來驗證一下你是否真明白了,但不應該把是否能寫出代碼作為標准,相比之下,應該更強調對自身思維的培養和如何利用這個數據結構去做一些實際的事情。 劉汝佳在《演算法競賽入門經典》當中提到:一方面,很多常見數據結構已經包含於C++的STL或者Java的JCF中,不必自行編寫;另一方面,需要自己編寫的復雜數據結構在傳統教材是找不到的。換句話說,對於准備演算法競賽來說,傳統教材的最大價值在於概念和思想,而非代碼。在《演算法競賽入門經典》中,作者多次心中有劍,手中無劍,使用數組來模擬一些數據結構,比如用數組模擬二叉樹、模擬鏈表,這樣寫出的代碼十分簡潔,我看了之後才知道原來使用一個數據結構並不一定要把它的標准實現寫出來,我認為掌握數據結構的思想並能對實現進行靈活的變幻才是學習數據結構應該達到的目標和境界。 所以學習數據結構,我認為應該以讀書理解和做題為主,寫實現為輔。
㈩ 數據結構C語言版怎樣自學
先了解這本書整體構架,理清章節知識之間的關系。從最基礎的知識點開始學習,依次(我看的是數據結構--用C語言描述)線性表---棧、隊列--串---數組、廣義表。。。數和圖。。再有就是先看書,然後把書本上給的代碼都敲幾遍。還有做章節習題。