資料結構學習心得

xiaohuanglv發表於2018-08-18

    image.png

山不在高,有仙則靈;水不在深,有龍則靈;要學好資料結構,有資料結構學習網才行!

首先,恭喜您發現了這個網站:一個神奇的學習資料結構的網站!

其次,感謝您開啟這個網頁閱讀這篇文章,實在太感謝啦!

再次,正在激動中......哽咽了。還是讓我先來介紹一下我自己吧:

我就是江湖上人見人愛、花見花開、車見車載,人稱上天入地、無所不能、英俊瀟灑、風流倜儻、玉樹臨風、學富五車、高大威猛、擁有千萬粉絲、迷倒萬千少女,號稱一朵梨花壓海棠的玉面小黃驢,帥到掉渣!一個見過我的女孩兒曾對我說:“如果世界只剩下十分鐘的話,我會和你一同回憶你帥時的樣子;如果世界只剩下三分鐘的話,你要再擺一下你最最最帥的造型給我看;如果世界只剩下一分鐘的話,我會對你對你說60次—小黃驢,你真帥!”還有一個女孩兒每天早晨都站在教室門口,痴痴地望著我,呆呆狀喃道:“世間本無沙漠,只是我每看到一次你帥的樣子,天上便會落下一粒沙,從此便有了撒哈拉。”唯心主義說:“我說你帥,你就是帥。”唯物主義說:“因為你帥,所以我說你帥。”總而言之一句話—我,就是帥。一個不帥驢子的標誌是他願意為自己的不帥英勇地死去,一個帥氣驢子的標誌是他願意為自己的帥而卑愴地活著,所以,至今我還為自己的帥堅強的活著。

本人沒什麼優點,唯一的優點就是沒有缺點;本人基本全是缺點,最大的缺點就是隻有優點;如果靚仔是一種罪,我已經罪犯滔天;如果有型是一種錯,我已經一錯再錯;如果聰明要受懲罰,我豈不是要千刀萬剮;如果謙虛都要受折磨,我又怎能逃得過?

吹了這麼半天驢掰,相信大家一定已經對我有好感了,下面該說點嚴肅的事情了:

天將降大任於斯人也:據說,我出生時,天空的北方,出現祥雲一片,漸漸由遠至近,飄到我家房頂後,幻化成幾個大字:“我是碼農”。在接下來的若干年中,我一直在驢不停蹄地努力打造這個人類歷史上、整個宇宙中最經典、最驢掰的可供大家免費學習資料結構的網站,這個網站的出現,是順應天意的結果,更是歷史的必然!

那麼,上天為什麼委託我建造這個前無古人後無來者、舉世無雙、屌爆了的網站呢?學習資料結構到底有啥用?資料結構到底該咋學?

資料結構是電腦科學與技術專業、計算機資訊管理與應用專業,電子商務等專業的基礎課,是十分重要的核心課程。所有的計算機系統軟體和應用軟體都要用到各種型別的資料結構。因此,要想更好地運用計算機來解決實際問題,僅掌握幾種計算機程式設計語言是難以應付當前眾多複雜的課題。要想有效地使用計算機、充分發揮計算機的效能,還必須學習和掌握好資料結構的有關知識。打好“資料結構”這門課程的紮實基礎,對於學習其他專業課程是十分有益的。

對於怎麼能學好這門課程,我個人覺得基本上就是上課前看看書、上課時認真聽課、下課以後複習複習、當然還有做作業時很認真的去做。根本談不上什麼好方法,不過我還是有一些話要送給大家:

一、打好基本功

不管學習什麼,概念是基礎,所有的知識框架都是建立在基礎概念之上的。所以,第一遍看課本要將概念熟記於心,然後構建知識框架。比如看了一遍書後你至少應該知道資料結構包括線性結構、樹形結構、圖狀結構或網狀結構。線性結構包括線性表、棧、佇列、串、陣列、廣義表等,棧和佇列是操作受限的線性表,串的資料物件約束為字符集,陣列和廣義表是對線性表的擴充套件:表中的資料元素本身也是一個資料結構。除了線性表以外,棧是重點,因為棧和遞迴緊密相連,遞迴是程式設計中很重要的一種工具。樹狀結構中的重點自然是二叉樹和哈弗曼樹了。對於二叉樹的很多操作都是基於對二叉樹的遍歷,掌握瞭如何遍歷,很多問題也就迎刃而解了,比如對二叉樹結點的查詢訪問、統計二叉樹中葉子結點的數目、求二叉樹的深度等。哈弗曼編碼也有著很廣泛的應用。對於圖狀結構,主要學習圖的儲存結構及圖的遍歷。

二、不能看不起自己

“我能行!”

個人覺得這句話非常重要,不知道大家是怎樣看待資料結構這門課的,有多少人覺得資料結構很難呢?我知道還是有一些同學這樣覺得的,有時候我跟我的朋友講要怎樣學,講了一大堆以後,他就向我抱怨:我以前c++都沒有學好,資料結構更學不好了,這哪跟哪的話啊,資料結構與c++沒有什麼關係,我想假如抱有這樣的心態,自己就不相信自己,那是不可能學好的,那些覺得資料結構很難的同學,我想他們應該會很看重資料結構的吧,然後他們就一天到晚捧著一本資料結構,這樣不會覺得很累嗎?而且因為覺得很難,就容易不相信自己,學的效率也不會很好,或許這有點太妄自菲薄了吧。個人認為資料結構很好學,很容易學,因為我覺得很容易,當然就會覺得自己沒問題,學得很輕鬆,效果也還可以。大家都是從高考走過來的,應該知道心態的重要性吧,兩種不同的心態,完全就是兩種不同的效果。學習資料結構我們到底要學些什麼呢?不知道大家有沒有想過,那現在我們現在來歸納一下我們學習的內容吧,其實我們也就學了幾種普通的資料結構,像二叉樹,樹,圖還有排序的問題,前面的線性表和字串也就是一些概念,當然還有一個很重要的KMP演算法,然後在每種資料結構中我們也就是學到了若干處理的演算法,我想真正數起來也就是幾十個演算法吧。學習資料結構也就是要掌握這幾十種演算法,多簡單!至於如何掌握每個演算法呢,我想就是多看看書,重要的是能夠理解。個人認為,學習的難易程度很大程度上決定於個人的興趣。把一件事情當做任務去做會很痛苦,當做興趣去做會很快樂。如果想讓自己在學習資料結構的過程中更輕鬆一些,就應該先培養對這門學科的興趣。

三、堅持獨自完成作業的好習慣

有一些同學總是喜歡先問好別人演算法,然後再自己寫,雖然這個不算抄襲作業,但自己基本上沒有一個思考問題的過程,雖然要理解演算法也會要思考很多,但是因為沒有自己獨立的思考過程,要自己寫程式、寫演算法的時候根本寫不出來,所以我想如果真的想學好資料結構的話,最好是能夠自己思考問題,不要剛想了一會就覺得做不出來,然後就去問其他人。其實老師給我們的作業大多數還是基於我們的水平的,我絕對相信我們自己能夠獨自想出演算法,雖有可能會比較長時間吧,但是這樣肯定會比問其他人學到更多的東西。當然我並不是說不要問同學,有時候就是腦筋轉不過來,一問別人就懂了,當然問了別人不能只是我知道了這個演算法,還應該去想如何思考才能得到這個演算法,這樣水平會提高很多。

對演算法的學習是學習資料結構的關鍵。在看課本的過程中,要注重對演算法的掌握。對於一個演算法,讀一遍可能能讀懂,但不可能完全領會其中的思想。掌握一個演算法,並不是說將演算法背過,而是掌握演算法的思想。我們需要的是耐心。每看一遍就會有這一遍的收穫。讀懂演算法之後,自己再默寫演算法,寫到不會的地方,看看課本想想自己為什麼沒有想到。反覆練習,直到能順利寫出演算法為止。個人認為,這是行之有效的方法。這樣,不僅可以更加深入的領會演算法思想,還會逐漸發現演算法的巧妙之處,從而對資料結構產生興趣。

四、多動手實驗

這個就沒有太多理由了,我一直覺得程式設計是一門熟練科學,多程式設計,水平肯定會提高,最重要的是能夠養成一種感覺,就是對程式對演算法的敏感,為什麼那些牛人看一個演算法一下子就看懂了?而自己要看很久才能弄懂,而且弄懂了過了一陣子又忘記了?其實這個是因為牛人們以前看的程式很多,編得也很多,所以他們有了那種感覺,所以我覺得大家應該多看程式,多寫程式,培養自己的感覺。資料結構是實踐很強的一門課程,光是“聽”和“讀”是絕對不夠的,必須加強實踐。在寫演算法的過程中,可能會出現很多問題,而不斷修改的過程便是學習的過程。在這個過程中,只要全身心的投入了,便會發現很多樂趣。

五、關於複習和考試的一些技巧

我想大家應該都有這樣的感覺,就是覺得自己什麼都掌握了,但是在考試的時候就是會犯暈,有時候一出考場就知道錯在哪個了,然後考完以後一對答案,發現其實考得很簡單,應該都是自己會做的,這個就是與自己的複習和考試的技巧有關係了。

首先就是複習,前面已經說過其實我們學的演算法也就是幾十個,那麼我們的任務也就是理解這幾十個演算法,複習也就是要加深你的理解。如何理解演算法,然後理解到什麼程度呢?是能默寫出整個演算法嗎?其實不是這樣的,資料結構的考試有它的特點,考過期末考試了,大家應該都發現資料結構其實不要求你把整個演算法背出來,它注重考察你的理解,那麼怎麼考察呢?其實也就是兩種方式吧,一種就是用例項,就是給你一個例子,要你用某個演算法執行出結果,我想這個期末考試的時候仍然會有很多這樣的題目,比如排序那塊就很好出這樣的題目,要複習這種題目我覺得很簡單,就是每個演算法都自己用例子去實踐一下,以不變應萬變,我當年期末複習的時候就是這樣去做的,而且考試之前我就覺得排序類的題目就很有可能會考,於是就自己編寫各類排序演算法執行了一遍。另外一種考察方式就是演算法填空和演算法改錯,可能有一些同學覺得這種題目很難,其實我們首先可以確定這兩種題目肯定是與書上演算法有關係的,只要理解了書上的演算法就可以了,有人覺得看完書以後什麼都懂了,而且要默寫也默寫得出來,其實不是這樣的,演算法改錯和填空主要是考察的細微處,雖然你覺得你默寫得出來,那是能夠默寫出演算法的主體部分,很多細微的地方你就會很容易忽略。我想大家考過期末考以後應該都有這種感覺吧?那要怎樣解決這種問題呢?我覺得有兩種方法,一種就是自己去程式設計實現,這種方法比較有意義,還能夠提高程式設計水平,另外一種就是用例項分析演算法的每句話,我認為這種方法是最有效的。

然後還有一種題目,就是最後的寫演算法的題目,我覺得這種題目還是很好解決的,只要是能夠自己做出作業的,基本上都會很容易做出來,這也是為什麼我前面覺得平時做作業應該自己獨立思考的原因,同時做這種題目千萬要小心,尤其是題目簡單的時候,那肯定會有一些小地方要考慮清楚,一不小心就會被扣掉很多分,這樣很不值。

我覺得考試的時候沒有太多要講的,只要複習好了,考試的時候細心一點就可以了,然後就是做一個題目開始就要儘量保證正確,如果覺得留在那裡等後面做完了再來檢查,這樣錯誤還是很有可能檢查不出來,我期末考試的時候就基本上沒有檢查,因為我做每個題目都是確保正確,用的時間也挺多的,然後也覺得沒有檢查的必要了。

五百年回眸才換來今生的擦肩而過,一萬年方得今日在此相聚,我希望大家能記住我的名字—小黃驢,因為我將會和大家成為最好的朋友。我希望大家能記住我的網站—資料結構學習網,因為她將會成為一個讓大家可以依賴的學習港灣。我們將風雨無阻一起走過一段美好的時光,祝大家學習愉快!學有所得!


來源:我是碼農,轉載請保留出處和連結!

本文連結:http://www.54manong.com/?id=10

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();

相關文章