靈感範文站

數據結構心得體會多篇

數據結構心得體會多篇

數據結構心得體會篇1

本次課程設計,使我對《數據結構》這門課程有了更深入的理解。《數據結構》是一門實踐性較強的課程,爲了學好這門課程,必須在掌握理論知識的同時,加強上機實踐。

我的課程設計題目是線索二叉樹的運算。剛開始做這個程序的時候,感到完全無從下手,甚至讓我覺得完成這次程序設計根本就是不可能的,於是開始查閱各種資料以及參考文獻,之後便開始着手寫程序,寫完運行時有很多問題。特別是實現線索二叉樹的刪除運算時很多情況沒有考慮周全,經常運行出現錯誤,但通過同學間的幫助最終基本解決問題。

在本課程設計中,我明白了理論與實際應用相結合的重要性,並提高了自己組織數據及編寫大型程序的能力。培養了基本的、良好的程序設計技能以及合作能力。這次課程設計同樣提高了我的綜合運用所學知識的能力。並對vc有了更深入的瞭解。《數據結構》是一門實踐性很強的課程,上機實習是對學生全面綜合素質進行訓練的一種最基本的方法,是與課堂聽講、自學和練習相輔相成的、必不可少的一個教學環節。上機實習一方面能使書本上的知識變“活”,起到深化理解和靈活掌握教學內容的目的;另一方面,上機實習是對學生軟件設計的綜合能力的訓練,包括問題分析,總體結構設計,程序設計基本技能和技巧的訓練。此外,還有更重要的一點是:機器是比任何教師更嚴厲的檢查者。因此,在“數據結構”的學習過程中,必須嚴格按照老師的要求,主動地、積極地、認真地做好每一個實驗,以不斷提高自己的編程能力與專業素質。

通過這段時間的課程設計,我認識到數據結構是一門比較難的課程。需要多花時間上機練習。這次的程序訓練培養了我實際分析問題、編程和動手能力,使我掌握了程序設計的基本技能,提高了我適應實際,實踐編程的能力。

總的來說,這次課程設計讓我獲益匪淺,對數據結構也有了進一步的理解和認識。

數據結構心得體會篇2

通過這次課程設計使我進一步達到理論與實際相結合,提高了自己組織數據及編寫程序的能力,使我們能夠根據問題要求和數據對象的特性,學會數據組織的方法,把現實世界中的實際問題在計算機內部表示出來並用軟件解決問題,培養良好的程序設計技能,掌握設計程序的思路,學會用計算機語言編寫程序,以實現所需處理的任務,鍛鍊自己的動腦能力,學會用自己的思路解決現實中的實際問題,雖然一開始也走了一些彎路不過在同學和老師的點撥下完成了該程序,這次課程設計中遇到了很多問題,一開始準備用二維數組存放的可考慮到同一個學校同一個項目有好幾個人蔘加,就不能用二維數組了,如果每個學校都申請一個二維數組也非常不方便,還是用順序表方便也不浪費空間,在這次課程設計的過程中雖然很多次都參照了課本及資料,不過這使我更加熟悉了順序表以及結構體的定義及實現,調試過程中也遇到了一些問題也都是自己獨立思考完成的,還有一個體會是,遇到不會的地方可以參考課本也可以去圖書館或網上查資料,當然主要思路有了也就簡單點了。

在老師的答辯指指導下,程序數組那塊程序的書寫老師問我爲什麼是那樣的,當時寫這塊程序的時候是看書上數組那塊程序再加上自己的主觀想法覺得就是這樣寫的,雖然這塊程序當時那種主觀想法是寫對了,但是經過老師的答辯提問才知道雖然是寫對了,但是這種思考和想法是錯誤不科學的,真正的是因爲第2次循環是因爲第一次釋放了一個。所以通過這次課程設計讓我懂得了一個很重要的道理,就是以後如果哪地方有一點迷惑,有一點不懂的地方不能憑自己主觀的思考和想法覺得應該是這樣的,一定要找老師問清楚爲什麼是這樣的,一定要把每步每個小程序都要搞的十分的清楚,這真是個很好的收穫。還有就是這個程序的男女問題上,開始準備在結構體中加一個sex的點,大使那樣對與男女項目還是有點麻煩,後來在同學的提醒下,通過參賽項目號就可以解決了,比m大就是女子項目,比m小或者等於m就是男子項目。這樣就可以很完美地解決這個問題了。

其實,當你實驗遇到問題時,自己會通過很多途徑去解決它,沒有解決時,心急如焚,解決之後的那種快感是前所未有的,這也許就是付出了行動之後的收穫吧!

這也教會了我們以後在社會上,遇見了事情不可怕,只要不被困難擊倒,解決了它,那樣我們就是勝利的!

數據結構心得體會篇3

數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關係的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。

一般認爲,一個數據結構是由數據元素依據某種邏輯聯繫組織起來的。對數據元素間邏輯關係的描述稱爲數據的邏輯結構;數據必須在計算機中存儲,數據的存儲結構是數據結構的實現形式,是其在計算機內的表示;此外討論一個數據結構必須同時討論在該類數據結構上執行的運算纔有意義。一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率。

在許多類型的程序的設計中,數據結構的選擇是一個基本的設計考慮因素。許多大型系統的構造經驗表明,系統實現的困難程度和系統構造的質量都嚴重的依賴於是否選擇了最優的數據結構。許多時候,確定了數據結構後,算法就容易得到了。有些時候事情也會反過來,我們根據特定的算法來選擇數據結構與之適應。不論哪種情況,選擇合適的數據結構都是非常重要的。

從上面我們瞭解到了數據結構的重要性,它是一個程序的關鍵因素。拿到“陰風習習的大樓”這個題目時,一開始不知道從哪入手,以爲可以把每個位置看成一個圖的一個節點,從而可以用鄰接表這種結構,通過遍歷鄰接表,每次選擇權值小的路徑走就可以得到最短的路徑了。我錯了,完全的錯了。通過認真的分析後,我認識到,這能簡單的看成一個圖,因爲每個位置都只能到達它鄰接的位置而不是和其他各位置都有聯繫。而且如果每個位置轉化爲圖的一個節點,這樣要表示每個節點的關係就需要n*n節點和n^4大小的數組來存儲各個點的關係。還有這個大樓結構想轉化爲一個圖也是不容易的。根據書上有些類似的“老鼠迷宮問題”,讓我想打,不如就用n*n大小的數組直接存儲大樓結構。通過類似走迷宮的方法來遍歷,當遍歷完所有路徑後就能得到一個最小的路徑。那接下來怎樣遍歷呢?我採用了深度優先遍歷的方法,這樣可以用遞歸的方法,簡化代碼。雖然理解上有一定困難,而且遞歸條件的控制要注意。

通過這次數據結構程序設計,不僅讓我對c語言的一些知識得到了回顧,加深了對c語言的掌握。同時也讓我對數據結構知識得到了一定的掌握。知道了怎麼去分析一個題目,怎樣選擇比較好的數據結構。讓我從怎麼樣實現一個程序功能,轉變到怎麼用更少的空間,更短的時間完成程序設計。空間和時間上對程序的優化是評價一個程序好壞的關鍵標準。

通過這次數據結構的程序設計也讓我懂得了怎麼樣去設計一個程序。從問題分析中找出程序所要解決的關鍵問題和數據結構的選擇;在概要設計中完成程序的大體輪廓;在詳細設計中解決關鍵問題的算法和設計;在調試分析中完成程序最終的修補。這樣一個比較好的程序就設計出來了。

數據結構心得體會篇4

完成了這次的二元多項式加減運算問題的課程設計後,我的心得體會很多,細細梳理一下,有以下幾點:

1、程序的編寫中的語法錯誤及修改

因爲我在解決二元多項式問題中,使用了鏈表的方式建立的二元多項式,所以程序的空間是動態的生成的,而且鏈表可以靈活地添加或刪除結點,所以使得程序得到簡化。但是出現的語法問題主要在於子函數和變量的定義,降序排序,關鍵字和函數名稱的書寫,以及一些庫函數的規範使用,這些問題均可以根據編譯器的警告提示,對應的將其解決。

2、程序的設計中的邏輯問題及其調整

我在設計程序的過程中遇到許多問題,首先在選擇數據結構的時候選擇了鏈表,但是鏈表的排序比較困難,特別是在多關鍵字的情況下,在一種關鍵字確定了順序以後,在第一關鍵字相同的時候,按某種順序對第二關鍵字進行排序。在此程序中共涉及到3個量數,即:係數,x的指數和y的指數,而關鍵字排是按x的指數和y的指數來看,由於要求是降冪排序且含有2個關鍵字,所以我先選擇x的`指數作爲第一關鍵字,先按x的降序來排序,當x的指數相同時,再以y爲關鍵字,按照y的指數大小來進行降序排列。

另外,我在加法函數的編寫過程中也遇到了大量的問題,由於要同時比較多個關鍵字,而且設計中涉及了數組和鏈表的綜合運用,導致反覆修改了很長的時間才完成了一個加法的設計。但是,現在仍然有一個問題存在:若以0爲係數的項是首項則顯示含有此項,但是運算後則自動消除此項,這樣是正確的。但是當其不是首項的時候,加法函數在顯示的時候有0爲係數的項時,0前邊不顯示符號,當然,這樣也可以理解成當係數爲0時,忽略這一項。這也是本程序中一個不完美的地方。

我在設計減法函數的時候由於考慮不夠充分就直接編寫程序,走了很多彎路,不得不停下來仔細研究算法,後來發現由於前邊的加法函數完全適用於減法,只不過是將二元多項式b的所有項取負再用加法函數即可,可見算法的重要性不低於程序本身。

3、程序的調試中的經驗及體會

我在調試過程中,發生了許多小細節上的問題,它們提醒了自己在以後編程的時候要注意細節,即使是一個括號的遺漏或者一個字符的誤寫都會造成大量的錯誤,浪費許多時間去尋找並修改,總結的教訓就是寫程序的時候,一定要仔細、認真、專注。

我還有一個很深的體會就是格式和註釋,由於平時不注意格式和註釋這方面的要求,導致有的時候在檢查和調試的時候很不方便。有的時候甚至剛剛完成一部分的編輯,結果一不注意,就忘記了這一部分程序的功能。修改的時候也有不小心誤刪的情況出現。如果注意格式風格,並且養成隨手加註釋的習慣,就能減少這些不必要的反覆和波折。還有一點,就是在修改的時候,要注意修改前後的不同點在哪裏,改後調試結果要在原有的基礎上更加精確。

數據結構心得體會篇5

數據結構是一門純屬於設計的科目,它需用把理論變爲上機調試。在學習科目的第一節課起,魯老師就爲我們闡述了它的重要性。它對我們來說具有一定的難度。它是其它編程語言的一門基本學科。很多同學都說,數據結構不好學,這我深有體會。剛開始學的時候確實有很多地方我很不理解,每次上課時老師都會給我們出不同的設計題目,對於我們一個初學者來說,無疑是一個具大的挑戰。

我記得有節課上遍歷二叉樹的內容,先序遍歷、中序遍歷、後序遍歷。魯老師說:這節課的內容很重要,不管你以前聽懂沒有,現在認真聽。說實在的,以前上的內容確實沒大聽懂,不過聽了老師的話,我聽得很認真。先序遍歷很簡單,是三個遍歷中,最簡單的。而中序遍歷聽得有點模糊,後序遍歷也半懂半懂,我心想如果老師再講一遍,我肯定能聽懂。後來老師畫了一個二叉樹,抽了同學到黑板上去排序,這個二叉樹看似複雜,不過用先序遍歷來排,並不難。於是我在下面排好了先序,先序遍歷很簡單,我有點得意,老師到位置上點了我上去排中序,上去之後排得一塌糊塗。後來老師又講了一遍,我這才聽懂了,魯老師又安慰我們說,這個二叉樹有點難,中序和後序都不好排,要學懂的確要花點功夫才行。我聽了老師的話,認真做了筆記,回去再看了當天學的內容。第二堂課,老師還是先講的先前的內容,畫了一個簡單的二叉樹,讓我們排序,又叫同學上去分別排出來,老師又點了我的名,叫我起來辨別排中序那兩個同學的答案哪個排正確了,我毫不猶豫的答對了。因爲這次的內容,先序遍歷二叉

樹、中序遍歷二叉樹、後序遍歷二叉樹,我的確真的懂了,第一次上這個課這麼有成就感。漸漸的對這門課有了興趣。我以爲永遠都聽不懂這個課,現在,我明白了,只要認真聽,肯下功夫,這個課也沒有什麼難的。而數據結構學習的難易程度很大程度上決定於個人的興趣,把一件事情當做任務去做會很痛苦,當做興趣去做會很快樂。也希望老師能看到我的改變,在此也感謝老師的辛勤教導。老師沒有放棄我,幾次點我的名上去,老師一定看得到我的進步。

後來,我每節課都認真聽課,老師雖然沒有點名,但我還是很認真的聽。雙親表示法孩子表示法和孩子兄弟表示法,這些內容我都聽得很明白,差不多每節課都認真聽課。有時我也會在上課空餘時間看看以前的內容,所以,第一遍看課本的時候要將概念熟記於心,然後構建知識框架。數據結構包括線性結構、樹形結構、圖狀結構或網狀結構。線性結構包括線性表、棧、隊列、串、數組、廣義表等,棧和隊列是操作受限的線性表,串的數據對象約束爲字符集,數組和廣義表是對線性表的擴展:表中的數據元素本身也是一個數據結構。除了線性表以外,棧是重點,因爲棧和遞歸緊密相連,遞歸是程序設計中很重要的一種工具。

其中我瞭解到:棧(stack)是隻能在某一端插入和刪除的特殊線性表。它按照後進先出的原則存儲數據,先進入的數據被壓入棧底,最後的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據;

隊列一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入的操作端稱爲

隊尾,進行刪除的操作端稱爲隊頭。隊列中沒有元素時,稱爲空隊列;鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。

想着自己報考自考的專業,也會考數據結構這門,這學期就結束了,或多或少都收穫了一些知識。儘管學得還不是很透徹,我相信這對自己的自考會有很大的幫助,所以,即使是結束了這科的內容,我也不會放棄去學習它。

數據結構心得體會篇6

通過兩週的課程設計,完成了預定的目標,其中有很多的隨想。老師的題目發下來的很早,大概提前了3周,當時就着手搜索有關線索二叉樹的思想,思路,借了一本《數據結構-c語言描述》,在大體上就有了一個輪廓,先是輸入二叉樹,在對二叉樹進行線索化,依次往下,但在具體實現時,遇到了很多問題:首先是思想的確定,其非常重要,以前有了這個想法,現在愈加清晰起來,因此,花了大量的時間在插入刪除的具體操作設計上,大概三個晚上的時間,對其中什麼不清晰明確之處均加以推敲,效果是顯著的,在上機上相應的節約了時間。

通過具體的實驗編碼,思路是對的,但是在小問題上摔了一次又一次,大部分時間都是花在這方面,這個節點沒傳過來啊之類的,以後應該搞一個小冊子,記錄一些錯誤的集合,以避免再犯,思想與c語言聯繫起來,纔是我們所需要的,即常說的理論與實踐的關係。

數據結構是基礎的一門課,對於有過編程經驗的人,結合自己的編程體會去悟它的思想;而且我覺得隨着編程經歷的豐富對它的體會越深入,最初接觸是對一些思想可能只是生硬的記憶,隨着學習的深入逐漸領悟了很多。看了這次課程設計的題目,雖然具體要求沒有看清,但是總結一下,可以看出,其需要我們能把一個具體案例或一件事情反映爲程序來表達,數據結構就是橋樑,通過自己的設計,使應用能力得以融匯,對與問題,具有了初步的分析,繼而解決之的能力,感覺對以後的學習會有很大的幫助,學習無非是用於實踐。

認識到自己的不足,希望能有進一步的發展。