數(shù)據(jù)結(jié)構(gòu)怎么學(xué) 如何學(xué)好數(shù)據(jù)結(jié)構(gòu)
怎樣學(xué)好數(shù)據(jù)結(jié)構(gòu)?怎么學(xué)好數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)到底怎么學(xué)比較好???如何學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?如何學(xué)好數(shù)據(jù)結(jié)構(gòu)?怎么學(xué)好數(shù)據(jù)結(jié)構(gòu)與算法,好難???
本文導(dǎo)航
- 數(shù)據(jù)結(jié)構(gòu)自學(xué)難度
- 怎么學(xué)好數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)結(jié)構(gòu)到底怎么學(xué)比較好???
- 如何學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
- 如何學(xué)好數(shù)據(jù)結(jié)構(gòu)
- 怎么學(xué)好數(shù)據(jù)結(jié)構(gòu)與算法,好難啊
數(shù)據(jù)結(jié)構(gòu)自學(xué)難度
個(gè)人的經(jīng)驗(yàn):
學(xué)數(shù)據(jù)結(jié)構(gòu)看書沒有用,只有寫代碼才是王道
而且一定注意,不是抄代碼,你看著書上的代碼寫一遍沒有用的
看完書中的描述(最好是指看文字描述,不用看代碼),然后自己寫,寫多少算多少
寫完以后再和書上對(duì)照,這樣一個(gè)一個(gè)的寫,你的功底就會(huì)比較扎實(shí)了
ps:數(shù)據(jù)結(jié)構(gòu)是非常重要的東西,一定要學(xué)好
ps2:基本的數(shù)據(jù)結(jié)構(gòu)學(xué)完后,可以看看侯捷寫的《STL源碼解析》,那個(gè)是實(shí)際中的應(yīng)用
ps3:《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》這個(gè)太糾結(jié)了,幾年之后再看,雖然是好書,但不是學(xué)東西用的
psp:好像沒什么好ps的了
怎么學(xué)好數(shù)據(jù)結(jié)構(gòu)
個(gè)人感覺,數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)處于兩個(gè)階段。
1. 為了應(yīng)付考試
這個(gè)階段主要還是通過做題,鞏固記憶,加深理解;(可以通過寫程序加深理解)
2. 編程需要
數(shù)據(jù)結(jié)構(gòu)是已經(jīng)很成熟的學(xué)科,大多數(shù)算法都有標(biāo)準(zhǔn)化的實(shí)現(xiàn),所以重點(diǎn)還是理解算法作者的思路,為以后自己開發(fā)算法打基礎(chǔ)。
當(dāng)然,通過編寫跟數(shù)據(jù)結(jié)構(gòu)有關(guān)的程序,同樣能夠提高自己的應(yīng)試能力,畢竟理論結(jié)合實(shí)際才是王道,否則那就是紙上談兵!
數(shù)據(jù)結(jié)構(gòu)到底怎么學(xué)比較好???
寫數(shù)據(jù)結(jié)構(gòu)代碼編程了學(xué)習(xí)C語言,是大多數(shù)初學(xué)者的經(jīng)驗(yàn),其實(shí)有辦法可以避免的。
多想> 多看 > 多寫字 > 多動(dòng)鍵盤
養(yǎng)成好的編程習(xí)慣很重要。
做任何工作之前,要把自己的思路整理清楚 參考別人的相關(guān)工作經(jīng)驗(yàn),針對(duì)自己的需求做分析 把思路落實(shí)到紙張上 采用自頂向下的編程方式,先把你的個(gè)函數(shù)的功能,入口和出口描述清楚 每個(gè)函數(shù)內(nèi)部的執(zhí)行流程,都要注釋好。 最后再分段逐步編碼。
這樣可以有效的避免大多數(shù)的錯(cuò)誤發(fā)生。 即便出現(xiàn)錯(cuò)誤,也很容易定位到問題的所在。 不知道大家是怎樣看待數(shù)據(jù)結(jié)構(gòu)這門課的,有多少人覺得數(shù)據(jù)結(jié)構(gòu)很難呢?我知道還是有一些同學(xué)這樣覺得的,有時(shí)候我跟我的朋友講要怎樣學(xué),講了一大堆以后,他就向我抱怨:我以前c++都沒有學(xué)好,數(shù)據(jù)結(jié)構(gòu)更學(xué)不好了,這哪跟哪的話啊,數(shù)據(jù)結(jié)構(gòu)與c++沒有什么關(guān)系,我想假如抱有這樣的心態(tài),自己就不相信自己,那是不可能學(xué)好的,然后那些覺得數(shù)據(jù)結(jié)構(gòu)很難的同學(xué),我想他們應(yīng)該會(huì)很看重?cái)?shù)據(jù)結(jié)構(gòu)的吧,然后就一天到晚捧著一本數(shù)據(jù)結(jié)構(gòu),這樣不會(huì)覺得很累嗎?而且因?yàn)橛X得很難,就容易不相信自己,學(xué)的效率也不會(huì)很好,個(gè)人認(rèn)為數(shù)據(jù)結(jié)構(gòu)很好學(xué),很容易學(xué),或許這有點(diǎn)妄自菲薄吧,但是因?yàn)槲矣X得很容易,當(dāng)然就會(huì)覺得自己沒問題,學(xué)得很輕松,效果也還可以。大家都是從高考走過來的,應(yīng)該知道心態(tài)的重要性吧,兩種不同的心態(tài),完全就是兩種不同的效果。學(xué)了這么久數(shù)據(jù)結(jié)構(gòu)了,我們到底在學(xué)些什么呢?不知道大家有沒有想過,那現(xiàn)在我們現(xiàn)在來歸納一下我們學(xué)習(xí)的內(nèi)容吧,其實(shí)學(xué)到現(xiàn)在我們也就學(xué)了幾種普通的數(shù)據(jù)結(jié)構(gòu),象二叉樹,樹,圖,還有排序的問題,前面的線性表和字符串也就是一些概念,當(dāng)然還有一個(gè)很重要的KMP算法,然后在每種數(shù)據(jù)結(jié)構(gòu)中我們也就是學(xué)到了若干處理的算法,我想真正數(shù)起來也就是幾十個(gè)算法吧。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)也就是要掌握這幾十種算法,多簡(jiǎn)單。至于如何掌握每個(gè)算法呢,我想就是多看看書,重要的是能夠理解。 如果真的想學(xué)好數(shù)據(jù)結(jié)構(gòu)的話,最好是能夠自己思考問題,不要?jiǎng)傁肓艘粫?huì)就覺得做不出來,然后就去問其他人。其實(shí)張老師給我們的作業(yè)還是基于我們的水平的,我絕對(duì)相信我們自己能夠獨(dú)自想出算法,雖有可能會(huì)比較長(zhǎng)時(shí)間吧,但是這樣肯定會(huì)比問其他人學(xué)到更多的東西。當(dāng)然我并不是說不要問同學(xué),有時(shí)候就是腦筋轉(zhuǎn)不過來,一問別人就懂了,當(dāng)然問了別人不能只是我知道了這個(gè)算法,還應(yīng)該去想如何思考才能得到這個(gè)算法,這樣水平會(huì)提高很多。
很多計(jì)算機(jī)專業(yè)的同學(xué)對(duì)于大學(xué)2年級(jí)開設(shè)的數(shù)據(jù)結(jié)構(gòu)課程很是頭痛. 看見大家總在談?wù)摂?shù)據(jù)結(jié)構(gòu)重要性,可使自己學(xué)習(xí)卻總也找不到合適的方法. 下面我和大家分享一下我過去一年多以來學(xué)習(xí)和應(yīng)用數(shù)據(jù)結(jié)構(gòu)方面一些經(jīng)驗(yàn). 內(nèi)容都是來自作者本人的一些經(jīng)歷和體驗(yàn),希望對(duì)于大家學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有引導(dǎo)作用。 1什么是數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)從文字上面來看,為數(shù)據(jù)和結(jié)構(gòu)兩部分。這樣就很容易聯(lián)系到數(shù)據(jù)結(jié)構(gòu)的本質(zhì)是一種對(duì)于數(shù)據(jù)結(jié)構(gòu)花的知識(shí)。補(bǔ)充一個(gè)知識(shí)點(diǎn),數(shù)據(jù)結(jié)構(gòu)本質(zhì)和離散數(shù)學(xué)有很密切的關(guān)系。離散數(shù)學(xué)是處理的是離散(非連續(xù)的)的數(shù)據(jù),站在數(shù)據(jù)結(jié)構(gòu)的觀點(diǎn)上來看,也可以理解是一種非連續(xù)數(shù)據(jù)的結(jié)構(gòu)。 2數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)語言 數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)語言本身沒有任何聯(lián)系,唯一有的關(guān)系就實(shí)用程序語言去描述數(shù)據(jù)結(jié)構(gòu)。 因?yàn)閿?shù)據(jù)結(jié)構(gòu)是一種抽象數(shù)據(jù),通過程序設(shè)計(jì)語言可以將在計(jì)算機(jī)中進(jìn)行實(shí)現(xiàn)。今天大學(xué)里數(shù)據(jù)結(jié)構(gòu)課程常用來描述數(shù)據(jù)結(jié)構(gòu)的語言有C程序設(shè)計(jì)語言,C 程序設(shè)計(jì)語言和JAVA程序設(shè)計(jì)語言.而對(duì)于喜歡其他語言的同學(xué)完全可以自己通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)后用自己熟悉的程序設(shè)計(jì)語言去完成程序化的描述. 我自己過去很喜歡C#程序設(shè)計(jì)語言,自己用C#程序設(shè)計(jì)對(duì)于一些數(shù)據(jù)結(jié)構(gòu)進(jìn)行了實(shí)現(xiàn). 大家可以通過訪問CSTC我的專欄看到兩篇C#描述的數(shù)據(jù)結(jié)構(gòu) 3數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的技巧 3.1學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的概念后對(duì)于抽象數(shù)據(jù)類型的設(shè)計(jì)參考C STL標(biāo)準(zhǔn)庫中容器的設(shè)計(jì).這樣對(duì)于無論是數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)還有程序設(shè)計(jì)接口能力上都會(huì)有很大的提高. 3.2對(duì)于數(shù)據(jù)結(jié)構(gòu)課程中很多時(shí)候都不太重視的順序(數(shù)組)做存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),希望大家還是要多留意這快的知識(shí).對(duì)于有些場(chǎng)合需要考慮時(shí)間換空間的情況下需要考慮順序存儲(chǔ)結(jié)構(gòu). 3.3?數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)一定要自己獨(dú)立完成代碼實(shí)現(xiàn),雖然有時(shí)候你理解內(nèi)容了,但是實(shí)現(xiàn)上面還是會(huì)愈要很多困難的,解決這些困難會(huì)幫助你提高程序設(shè)計(jì)的能力的. 推薦一本習(xí)題集 C 描述的數(shù)據(jù)結(jié)構(gòu)的習(xí)題集(英文版) 數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)最重要最基礎(chǔ)的一門課,對(duì)于有過編程經(jīng)驗(yàn)的人,結(jié)合自己的編程體會(huì)去悟它的思想;對(duì)于初學(xué)者,撿一種自己最熟悉的語言去分析它總之千萬不要陷在語言的細(xì)節(jié)上要高屋建瓴的去領(lǐng)會(huì)數(shù)據(jù)結(jié)構(gòu)的思想。而且我覺得隨著編程經(jīng)歷的豐富對(duì)它的體會(huì)越深入,最初接觸是對(duì)一些思想可能只是生硬的記憶,隨著學(xué)習(xí)的深入逐漸領(lǐng)悟了很多。奉勸孔孔不要灰心,對(duì)于實(shí)在弄不懂的東東,就先記住,應(yīng)付過考試再說。
你用的是什么書呀?我們現(xiàn)在也在學(xué)數(shù)據(jù)結(jié)構(gòu)呀,雖然是剛剛開始學(xué)習(xí)不久,我覺得那個(gè)數(shù)據(jù)結(jié)構(gòu)要多結(jié)合現(xiàn)實(shí)來理解吧。真的要自己動(dòng)手去把書里面的習(xí)題和例子都畫畫圖才好,就像我們書里面那個(gè)關(guān)于紅綠燈設(shè)置的問題,單單靠看是看不懂的,然后當(dāng)我自己用以前所學(xué)過的知識(shí),用集合的方法,把那些可以一起通行的方向都?xì)w為了一類之后,我感覺那個(gè)思緒變得很清晰,只有當(dāng)你的思路理清了以后,才可以更好地理解。還有,關(guān)于數(shù)據(jù)結(jié)構(gòu)怎么學(xué)這個(gè)問題,也許我的學(xué)習(xí)方法不是最好的,但是我還是想和你分享一下下吧,就是一開始不是有些線性表,鏈表什么的嗎?那些不知道你能懂嗎?我在看書的時(shí)候,就正如順序表,我會(huì)把這個(gè)順序表想象成一個(gè)現(xiàn)實(shí)中的隊(duì)伍,正如以前做操時(shí)排隊(duì)那樣,基本的添加和刪除等操作都可以想象成老師對(duì)這個(gè)隊(duì)伍的操作,就正如添加就是在一個(gè)隊(duì)伍的某一個(gè)地方插入一個(gè)人這樣。不過這個(gè)只是一個(gè)方法而已,順序表其實(shí)也不用什么這樣的想象吧,不過也許以后得學(xué)習(xí)也可以參照我的這個(gè)方法吧,聯(lián)系現(xiàn)實(shí)。。不過還是得靠自己去親手畫畫書里面的那些結(jié)構(gòu)等等的東西,當(dāng)你自己可以畫出來,其實(shí)你的思路就會(huì)清晰了,思路清晰了,學(xué)起來會(huì)好很多的。。 加油??!
如何學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
很多計(jì)算機(jī)專業(yè)的同學(xué)對(duì)于大學(xué)2年級(jí)開設(shè)的數(shù)據(jù)結(jié)構(gòu)課程很是頭痛.
看見大家總在談?wù)摂?shù)據(jù)結(jié)構(gòu)重要性,可使自己學(xué)習(xí)卻總也找不到合適的方法.
下面我和大家分享一下我過去一年多以來學(xué)習(xí)和應(yīng)用數(shù)據(jù)結(jié)構(gòu)方面一些經(jīng)驗(yàn).
內(nèi)容都是來自作者本人的一些經(jīng)歷和體驗(yàn),希望對(duì)于大家學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有引導(dǎo)作用。
1 什么是數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)從文字上面來看,為數(shù)據(jù)和結(jié)構(gòu)兩部分。這樣就很容易聯(lián)系到數(shù)據(jù)結(jié)構(gòu)的本質(zhì)是一種對(duì)于數(shù)據(jù)結(jié)構(gòu)花的知識(shí)。補(bǔ)充一個(gè)知識(shí)點(diǎn),數(shù)據(jù)結(jié)構(gòu)本質(zhì)和離散數(shù)學(xué)有很密切的關(guān)系。離散數(shù)學(xué)是處理的是離散(非連續(xù)的)的數(shù)據(jù),站在數(shù)據(jù)結(jié)構(gòu)的觀點(diǎn)上來看,也可以理解是一種非連續(xù)數(shù)據(jù)的結(jié)構(gòu)。
2 數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)語言
數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)語言本身沒有任何聯(lián)系,唯一有的關(guān)系就實(shí)用程序語言去描述數(shù)據(jù)結(jié)構(gòu)。
因?yàn)閿?shù)據(jù)結(jié)構(gòu)是一種抽象數(shù)據(jù),通過程序設(shè)計(jì)語言可以將在計(jì)算機(jī)中進(jìn)行實(shí)現(xiàn)。今天大學(xué)里數(shù)據(jù)結(jié)構(gòu)課程常用來描述數(shù)據(jù)結(jié)構(gòu)的語言有C程序設(shè)計(jì)語言,C++程序設(shè)計(jì)語言和JAVA程序設(shè)計(jì)語言. 而對(duì)于喜歡其他語言的同學(xué)完全可以自己通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)后用自己熟悉的程序設(shè)計(jì)語言去完成程序化的描述.
我自己過去很喜歡C#程序設(shè)計(jì)語言,自己用C#程序設(shè)計(jì)對(duì)于一些數(shù)據(jù)結(jié)構(gòu)進(jìn)行了實(shí)現(xiàn).
大家可以通過訪問CSTC我的專欄看到兩篇C#描述的數(shù)據(jù)結(jié)構(gòu)
3 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的技巧
3.1 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的概念后對(duì)于抽象數(shù)據(jù)類型的設(shè)計(jì)參考C++ STL標(biāo)準(zhǔn)庫中容器的設(shè)計(jì).這樣對(duì)于無論是數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)還有程序設(shè)計(jì)接口能力上都會(huì)有很大的提高.
3.2 對(duì)于數(shù)據(jù)結(jié)構(gòu)課程中很多時(shí)候都不太重視的順序(數(shù)組)做存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),希望大家還是要多留意這快的知識(shí).對(duì)于有些場(chǎng)合需要考慮時(shí)間換空間的情況下需要考慮順序存儲(chǔ)結(jié)構(gòu).
3.3數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)一定要自己獨(dú)立完成代碼實(shí)現(xiàn),雖然有時(shí)候你理解內(nèi)容了,但是實(shí)現(xiàn)上面還是會(huì)愈要很多困難的,解決這些困難會(huì)幫助你提高程序設(shè)計(jì)的能力的.
如何學(xué)好數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)是學(xué)好程序設(shè)計(jì)的基礎(chǔ)
里面寫了一些常用的算法和數(shù)據(jù)結(jié)構(gòu)
參加acm很有用
對(duì)以后找工作
面試都很有用
數(shù)據(jù)結(jié)構(gòu)
一般面試過程中
問的就是堆棧等等問題
學(xué)好數(shù)據(jù)結(jié)構(gòu)
首先得弄明白概念
然后就是上機(jī)實(shí)驗(yàn)了
每種類型的算法你都必須很熟練地敲出來
這里比較難懂的就是遞歸
和回溯的一些問題了
這個(gè)一定要學(xué)好
還有圖論那個(gè)地方的知識(shí)很難
什么最短路徑問題
等等
學(xué)好數(shù)據(jù)結(jié)構(gòu)很不容易
要下苦功夫
可以看看麻省理工的
課本
introduction
to
algorithm
還可以看看
the
art
of
computer
programming
怎么學(xué)好數(shù)據(jù)結(jié)構(gòu)與算法,好難啊
李明杰老師:每周一道算法題 通關(guān)算法面試課(超清視頻)百度網(wǎng)盤 ;
鏈接: https://pan.baidu.com/s/14GZpVf03Mf9E-YnMrrR4Pw 提取碼: 5dmc 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦; ;
若資源有問題歡迎追問~ ;
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由尚恩教育網(wǎng)發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。