數據結構程序設計心得體會(通用12篇)
當我們有一些感想時,寫一篇心得體會,記錄下來,通過寫心得體會,可以幫助我們總結積累經驗。一起來學習心得體會是如何寫的吧,以下是小編幫大家整理的數據結構程序設計心得體會,僅供參考,希望能夠幫助到大家。
數據結構程序設計心得體會 篇1
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。
一般認為,一個數據結構是由數據元素依據某種邏輯聯系組織起來的。對數據元素間邏輯關系的描述稱為數據的邏輯結構;數據必須在計算機中存儲,數據的存儲結構是數據結構的實現形式,是其在計算機內的表示;此外討論一個數據結構必須同時討論在該類數據結構上執行的運算才有意義。一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率。
在許多類型的程序的設計中,數據結構的選擇是一個基本的設計考慮因素。許多大型系統的構造經驗表明,系統實現的困難程度和系統構造的質量都嚴重的依賴于是否選擇了最優的數據結構。許多時候,確定了數據結構后,算法就容易得到了。有些時候事情也會反過來,我們根據特定的算法來選擇數據結構與之適應。不論哪種情況,選擇合適的數據結構都是非常重要的。
從上面我們了解到了數據結構的重要性,它是一個程序的關鍵因素。拿到“陰風習習的大樓”這個題目時,一開始不知道從哪入手,以為可以把每個位置看成一個圖的一個節點,從而可以用鄰接表這種結構,通過遍歷鄰接表,每次選擇權值小的路徑走就可以得到最短的路徑了。我錯了,完全的錯了。通過認真的分析后,我認識到,這能簡單的看成一個圖,因為每個位置都只能到達它鄰接的位置而不是和其他各位置都有聯系。而且如果每個位置轉化為圖的一個節點,這樣要表示每個節點的關系就需要nxn節點和n^4大小的數組來存儲各個點的關系。還有這個大樓結構想轉化為一個圖也是不容易的。根據書上有些類似的“老鼠迷宮問題”,讓我想打,不如就用nxn大小的數組直接存儲大樓結構。通過類似走迷宮的方法來遍歷,當遍歷完所有路徑后就能得到一個最小的路徑。那接下來怎樣遍歷呢?我采用了深度優先遍歷的方法,這樣可以用遞歸的方法,簡化代碼。雖然理解上有一定困難,而且遞歸條件的控制要注意。
通過這次數據結構程序設計,不僅讓我對c語言的一些知識得到了回顧,加深了對c語言的掌握。同時也讓我對數據結構知識得到了一定的掌握。知道了怎么去分析一個題目,怎樣選擇比較好的數據結構。讓我從怎么樣實現一個程序功能,轉變到怎么用更少的空間,更短的時間完成程序設計?臻g和時間上對程序的優化是評價一個程序好壞的關鍵標準。
通過這次數據結構的程序設計也讓我懂得了怎么樣去設計一個程序。從問題分析中找出程序所要解決的關鍵問題和數據結構的選擇;在概要設計中完成程序的大體輪廓;在詳細設計中解決關鍵問題的算法和設計;在調試分析中完成程序最終的修補。這樣一個比較好的程序就設計出來了。
數據結構程序設計心得體會 篇2
數據結構是一門純屬于設計的科目,它需用把理論變為上機調試。在學習科目的第一節課起,魯老師就為我們闡述了它的重要性。它對我們來說具有一定的難度。它是其它編程語言的一門基本學科。很多同學都說,數據結構不好學,這我深有體會。剛開始學的時候確實有很多地方我很不理解,每次上課時老師都會給我們出不同的設計題目,對于我們一個初學者來說,無疑是一個具大的挑戰。
我記得有節課上遍歷二叉樹的內容,先序遍歷、中序遍歷、后序遍歷。魯老師說:這節課的內容很重要,不管你以前聽懂沒有,現在認真聽。說實在的,以前上的內容確實沒大聽懂,不過聽了老師的話,我聽得很認真。先序遍歷很簡單,是三個遍歷中,最簡單的。而中序遍歷聽得有點模糊,后序遍歷也半懂半懂,我心想如果老師再講一遍,我肯定能聽懂。后來老師畫了一個二叉樹,抽了同學到黑板上去排序,這個二叉樹看似復雜,不過用先序遍歷來排,并不難。于是我在下面排好了先序,先序遍歷很簡單,我有點得意,老師到位置上點了我上去排中序,上去之后排得一塌糊涂。后來老師又講了一遍,我這才聽懂了,魯老師又安慰我們說,這個二叉樹有點難,中序和后序都不好排,要學懂的確要花點功夫才行。我聽了老師的話,認真做了筆記,回去再看了當天學的內容。第二堂課,老師還是先講的先前的內容,畫了一個簡單的二叉樹,讓我們排序,又叫同學上去分別排出來,老師又點了我的名,叫我起來辨別排中序那兩個同學的答案哪個排正確了,我毫不猶豫的答對了。因為這次的內容,先序遍歷二叉
樹、中序遍歷二叉樹、后序遍歷二叉樹,我的確真的懂了,第一次上這個課這么有成就感。漸漸的對這門課有了興趣。我以為永遠都聽不懂這個課,現在,我明白了,只要認真聽,肯下功夫,這個課也沒有什么難的。而數據結構學習的難易程度很大程度上決定于個人的興趣,把一件事情當做任務去做會很痛苦,當做興趣去做會很快樂。也希望老師能看到我的改變,在此也感謝老師的辛勤教導。老師沒有放棄我,幾次點我的名上去,老師一定看得到我的進步。
后來,我每節課都認真聽課,老師雖然沒有點名,但我還是很認真的聽。雙親表示法孩子表示法和孩子兄弟表示法,這些內容我都聽得很明白,差不多每節課都認真聽課。有時我也會在上課空余時間看看以前的內容,所以,第一遍看課本的時候要將概念熟記于心,然后構建知識框架。數據結構包括線性結構、樹形結構、圖狀結構或網狀結構。線性結構包括線性表、棧、隊列、串、數組、廣義表等,棧和隊列是操作受限的線性表,串的數據對象約束為字符集,數組和廣義表是對線性表的擴展:表中的數據元素本身也是一個數據結構。除了線性表以外,棧是重點,因為棧和遞歸緊密相連,遞歸是程序設計中很重要的一種工具。
其中我了解到:棧(Stack)是只能在某一端插入和刪除的特殊線性表。它按照后進先出的原則存儲數據,先進入的數據被壓入棧底,最后的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據;
隊列一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的后端(rear)進行插入操作。進行插入的操作端稱為
隊尾,進行刪除的操作端稱為隊頭。隊列中沒有元素時,稱為空隊列;鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
想著自己報考自考的專業,也會考數據結構這門,這學期就結束了,或多或少都收獲了一些知識。盡管學得還不是很透徹,我相信這對自己的自考會有很大的幫助,所以,即使是結束了這科的內容,我也不會放棄去學習它。
數據結構程序設計心得體會 篇3
課程設計是計算機科學與技術專業學生的集中實踐性環節之一,是學習“數據結構與算法”理論和實驗課程后進行的一次全面的綜合練習。其目的是要達到理論與實際應用相結合,使學生能夠根據問題要求和數據對象的特性,學會數據組織的方法,把現實世界中的實際問題在計算機內部表示出來并用軟件解決問題,培養良好的程序設計技能。
在這次課程設計當中,我了解到了我的不足,如算法的不完善、不細心和耐心不是很好等等。不細心的我在調試程序時,老是因為某個書寫錯誤導致錯誤;對這些錯誤,我不得不花大量的時間去更正,并且還要重復檢查是否出現雷同的錯誤而導致程序不能運行。但是通過這次課程設計,我的這些缺點有些改善。我在寫新的程序時,首先要考慮的深入一點、仔細一點,這樣要修改程序的時間就會少很多。并且也不會因為自己不細心而導致的浪費時間的情況出現。
在進行程序設計時,要注意想好思路。即要有恰當模塊名、變量名、常量名、子程序名等。將每個功能的模塊,即函數名要清晰的表述出來,使用戶能夠一目了然此程序的功能。當然適當的給寫注釋,也是方便用戶的理解。還有在編寫程序時要注意對程序的適當分配,便于用戶看懂程序,也便于自己檢查城市。但是完成任何一個較大的程序,都需要掌握一定的編程基礎,需要不斷的探索和求知過程,這樣對自己編程能力的提高有較大的幫助。當然,任何程序必須經過計算機的調試,看是否調試成功,發現錯誤,一個個,一步步去解決,這樣就能從錯誤中進步。
通過課程設計加強了我的動手能力,以及提升了局部和統一考慮問題的思維方式;仡櫰鸫舜握n程設計,至今我仍感慨頗多,的確,從從拿到題目到完成整個編程,從理論到實踐,在整整半個月的日子里,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體通過這次課程設計之后,一定把以前所學過的知識重新溫故。
通過這次的課程設計,我學到了怎么樣從一個實際問題出發,建立模型,找到相應的存儲結構和實現方法,實際運行,反復調試和修改,最終實現功能。在程序設計方法以及上機操作等基本技能和科學作風方面受到比較系統和嚴格的訓練,學會數據組織的方法,把現實世界中的實際問題在計算機內部表示出來并用軟件解決問題,培養了良好的程序設計技能。
在這次課程設計中,得到了好多同學的幫助以及老師的指導,在此要表達我真誠的謝意!
數據結構程序設計心得體會 篇4
本學期開設的《數據結構基礎》課程已經告一段落,現就學習體會進行學習總結。
這是一門純屬于設計的科目,它需用把理論變為上機調試。剛開始學的時候確實有很多地方我很不理解,每次上課時老師都會給我們出不同的設計題目,對于我們一個初學者來說,無疑是一個具大的挑戰,撞了幾次壁之后,我決定靜下心來,仔細去寫程序。老師會給我們需要編程的內容一些講解,順著老師的思路,來完成自己的設計,我們可以開始運行自己的程序。
這門課結束之后,我總結了學習中遇到的一些問題,最為突出的,書本上的知識與老師的講解都比較容易理解,但是當自己采用剛學的知識點編寫程序時卻感到十分棘手,有時表現在想不到適合題意的算法,有時表現在算法想出來后,只能將書本上原有的程序段謄寫到自己的程序中再加以必要的連接以完成程序的編寫。剛開始學的時候確實有很多地方我很不理解,每次上上機課時老師都會給我們出不同的設計題目,對于我們一個初學者來說,無疑是一個具大的挑戰,撞了幾次壁之后,我決定靜下心來,仔細去寫程序。老師會給我們需要編程的內容一些講解,順著老師的思路,來完成自己的設計,我們可以開始運行自己的程序,可是好多處的錯誤讓人看的可怕,還看不出到底是哪里出現了錯誤,但是程序還是得繼續下去,我多次請教了老師和同學,逐漸能自己找出錯誤,并加以改正。TC里檢查錯誤都是用英文來顯示出來的,經過了這次課程設計,現在已經可以了解很多錯誤在英文里的提示,這對我來說是一個突破性的進步,眼看著一個個錯誤通過自己的努力在我眼前消失,覺得很是開心。此次的程序設計能夠成功,是我和我的同學三個人共同努力作用的結果。在這一段努力學習的過程中,我們的編程設計有了明顯的提高。
其實現在想起來,收獲還真是不少,雖然說以前非常不懂這門語言,在它上面花費了好多心血,覺得它很難,是需用花費了大量的時間編寫出來的,F在真正的明白了一些代碼的應用,每個程序都有一些共同點,通用的結構,相似的格式。只要努力去學習,就會靈活的去應用它。
以上便是我對《數據結構基礎》這門課的學習總結,我會抓緊時間將沒有吃透的知識點補齊,克服學習中遇到的難關,在打牢基礎的前提下向更深入的層面邁進!
數據結構程序設計心得體會 篇5
通過這次課程設計使我進一步達到理論與實際相結合,提高了自己組織數據及編寫程序的能力,使我們能夠根據問題要求和數據對象的特性,學會數據組織的方法,把現實世界中的實際問題在計算機內部表示出來并用軟件解決問題,培養良好的程序設計技能,掌握設計程序的思路,學會用計算機語言編寫程序,以實現所需處理的任務,鍛煉自己的動腦能力,學會用自己的思路解決現實中的實際問題,雖然一開始也走了一些彎路不過在同學和老師的點撥下完成了該程序,這次課程設計中遇到了很多問題,一開始準備用二維數組存放的可考慮到同一個學校同一個項目有好幾個人參加,就不能用二維數組了,如果每個學校都申請一個二維數組也非常不方便,還是用順序表方便也不浪費空間,在這次課程設計的過程中雖然很多次都參照了課本及資料,不過這使我更加熟悉了順序表以及結構體的定義及實現,調試過程中也遇到了一些問題也都是自己獨立思考完成的,還有一個體會是,遇到不會的地方可以參考課本也可以去圖書館或網上查資料,當然主要思路有了也就簡單點了。在老師的答辯指指導下,程序數組那塊程序的書寫老師問我為什么是那樣的,當時寫這塊程序的時候是看書上數組那塊程序再加上自己的主觀想法覺得就是這樣寫的,雖然這塊程序當時那種主觀想法是寫對了,但是經過老師的答辯提問才知道雖然是寫對了,但是這種思考和想法是錯誤不科學的,真正的是因為第2次循環是因為第一次釋放了一個。所以通過這次課程設計讓我懂得了一個很重要的道理,就是以后如果哪地方有一點迷惑,有一點不懂的地方不能憑自己主觀的思考和想法覺得應該是這樣的,一定要找老師問清楚為什么是這樣的,一定要把每步每個小程序都要搞的十分的清楚,這真是個很好的收獲。還有就是這個程序的男女問題上,開始準備在結構體中加一個sex的點,大使那樣對與男女項目還是有點麻煩,后來在同學的提醒下,通過參賽項目號就可以解決了,比m大就是女子項目,比m小或者等于m就是男子項目。這樣就可以很完美地解決這個問題了。
其實,當你實驗遇到問題時,自己會通過很多途徑去解決它,沒有解決時,心急如焚,解決之后的那種快感是前所未有的,這也許就是付出了行動之后的收獲吧!
這也教會了我們以后在社會上,遇見了事情不可怕,只要不被困難擊倒,解決了它,那樣我們就是勝利的!
xxx
數據結構程序設計心得體會 篇6
完成了這次的二元多項式加減運算問題的課程設計后,我的心得體會很多,細細梳理一下,有以下幾點:
1、程序的編寫中的語法錯誤及修改
因為我在解決二元多項式問題中,使用了鏈表的方式建立的二元多項式,所以程序的空間是動態的生成的,而且鏈表可以靈活地添加或刪除結點,所以使得程序得到簡化。但是出現的語法問題主要在于子函數和變量的定義,降序排序,關鍵字和函數名稱的書寫,以及一些庫函數的規范使用,這些問題均可以根據編譯器的警告提示,對應的將其解決。
2、程序的設計中的邏輯問題及其調整
我在設計程序的過程中遇到許多問題,首先在選擇數據結構的時候選擇了鏈表,但是鏈表的排序比較困難,特別是在多關鍵字的情況下,在一種關鍵字確定了順序以后,在第一關鍵字相同的時候,按某種順序對第二關鍵字進行排序。在此程序中共涉及到3個量數,即:系數,x的指數和y的指數,而關鍵字排是按x的指數和y的指數來看,由于要求是降冪排序且含有2個關鍵字,所以我先選擇x的指數作為第一關鍵字,先按x的降序來排序,當x的指數相同時,再以y為關鍵字,按照y的指數大小來進行降序排列。
另外,我在加法函數的編寫過程中也遇到了大量的問題,由于要同時比較多個關鍵字,而且設計中涉及了數組和鏈表的綜合運用,導致反復修改了很長的時間才完成了一個加法的設計。但是,現在仍然有一個問題存在:若以0為系數的項是首項則顯示含有此項,但是運算后則自動消除此項,這樣是正確的。但是當其不是首項的時候,加法函數在顯示的時候有0為系數的項時,0前邊不顯示符號,當然,這樣也可以理解成當系數為0時,忽略這一項。這也是本程序中一個不完美的地方。
我在設計減法函數的時候由于考慮不夠充分就直接編寫程序,走了很多彎路,不得不停下來仔細研究算法,后來發現由于前邊的加法函數完全適用于減法,只不過是將二元多項式B的所有項取負再用加法函數即可,可見算法的重要性不低于程序本身。
3、程序的調試中的經驗及體會
我在調試過程中,發生了許多小細節上的問題,它們提醒了自己在以后編程的時候要注意細節,即使是一個括號的遺漏或者一個字符的誤寫都會造成大量的錯誤,浪費許多時間去尋找并修改,總結的教訓就是寫程序的時候,一定要仔細、認真、專注。
我還有一個很深的體會就是格式和注釋,由于平時不注意格式和注釋這方面的要求,導致有的時候在檢查和調試的時候很不方便。有的時候甚至剛剛完成一部分的編輯,結果一不注意,就忘記了這一部分程序的功能。修改的時候也有不小心誤刪的情況出現。如果注意格式風格,并且養成隨手加注釋的習慣,就能減少這些不必要的反復和波折。還有一點,就是在修改的時候,要注意修改前后的不同點在哪里,改后調試結果要在原有的基礎上更加精確。
數據結構程序設計心得體會 篇7
通過兩周的課程設計,完成了預定的目標,其中有很多的隨想。老師的題目發下來的很早,大概提前了3周,當時就著手搜索有關線索二叉樹的思想,思路,借了一本《數據結構-c語言描述》,在大體上就有了一個輪廓,先是輸入二叉樹,在對二叉樹進行線索化,依次往下,但在具體實現時,遇到了很多問題:首先是思想的確定,其非常重要,以前有了這個想法,現在愈加清晰起來,因此,花了大量的時間在插入刪除的具體操作設計上,大概三個晚上的時間,對其中什么不清晰明確之處均加以推敲,效果是顯著的,在上機上相應的節約了時間。
通過具體的實驗編碼,思路是對的,但是在小問題上摔了一次又一次,大部分時間都是花在這方面,這個節點沒傳過來啊之類的,以后應該搞一個小冊子,記錄一些錯誤的集合,以避免再犯,思想與C語言聯系起來,才是我們所需要的,即常說的理論與實踐的關系。
數據結構是基礎的一門課,對于有過編程經驗的人,結合自己的編程體會去悟它的思想;而且我覺得隨著編程經歷的豐富對它的體會越深入,最初接觸是對一些思想可能只是生硬的記憶,隨著學習的深入逐漸領悟了很多。看了這次課程設計的題目,雖然具體要求沒有看清,但是總結一下,可以看出,其需要我們能把一個具體案例或一件事情反映為程序來表達,數據結構就是橋梁,通過自己的設計,使應用能力得以融匯,對與問題,具有了初步的分析,繼而解決之的能力,感覺對以后的學習會有很大的幫助,學習無非是用于實踐。
認識到自己的不足,希望能有進一步的發展。
數據結構程序設計心得體會 篇8
本次課程設計所用到的知識完全是上學期的知識,通過這次課程設計,我認識到了我對數據結構這門課的掌握程度。
首先我這個課程設計是關于二叉樹的,由于是剛接觸二叉樹,所以我掌握的長度并不深。在編程之前我把有關于二叉樹的知識有溫習了一遍,還好并沒有忘掉。二叉樹這章節難度中上等,而且內容廣泛,所以我只掌握了百分之六七十。
然后,在編程中我認識到了自己動手能力的不足,雖然相比較大二而言進步很大,但是我還是不滿意,有的在編程中必須看書才能寫出來,有的靠百度,很少是自己寫的。還好,我自己組裝程序的能力還行,要不這東拼西湊的程序根本組裝不了。在編程中我還認識到了,編程不能停下,如果編程的時間少了,知識忘的會很快,而且動手也會很慢。同時,同學之間的合作也很重要,每個人掌握的知識都不一樣,而且掌握程度也不一樣,你不會的別的同學會,所以在大家的共同努力下,編程會變得很容易。在這次編程中,我了解到了自己某些方面的不足,比如說鏈表的知識,雖然我能做一些有關于鏈表的編程,但是很慢,沒有別人編程的快,另外,二叉樹和圖的知識最不好掌握,這方面的知識廣泛而復雜。以前,沒動手編程的時候覺得這些知識很容易,現在編程了才發現自己錯了,大錯特錯了,我們這個專業最重視的就是動手編程能力,如果我們紙上寫作能力很強而動手編程能力很差,那我們就白上這個專業了。計算機這個專業就是鍛煉動手編程能力的,一個人的理論知識再好,沒有動手編程能力,那他只是一個計算機專業的“入門者”。在編程中我們能找到滿足,如果我們自己編程了一個程序,我們會感到自豪,而且充實,因為如果我們專研一個難得程序,我們會達到忘我的境界,自己完全沉浸在編程的那種樂趣之中,完全會廢寢忘食。編程雖然會乏味很無聊,但是只要我們沉浸其中,你就會發現里面的樂趣,遇到難得,你會勇往直前,不寫出來永不罷休;遇到容易的,你會找到樂趣。編程是很乏味,但是那是因為你沒找到編程重的樂趣,你只看到了他的不好,而沒有看到他的好。其實,只要你找到編程中得樂趣,你就會完全喜歡上他,不編程還好,一編程你就會變成一個兩耳不聞窗外事的“植物人”?梢哉f只要你涉及到了計算機,你就的會編程,而且還要喜歡上他,永遠和他打交道,我相信在某一天,我們一定會把他當作我們不可或缺的好朋友。
最后我要談的是長時間編程的好處,俗話說“熟能生巧”,確實是這樣。如果我們長時間不編程,在一接觸他,我們會感到很陌生。有規律的編程會提高我們的動手能力,我們的思維,也會讓我們變得很細心。在一個幾千行的程序中,我們都能找到錯誤,那我們還會怕其他的錯誤嗎?可以說編程是我們在我們這一行業的一把利劍,如果我們能很好的利用它,我們就會成為這個行業的真正成功者。也許你會說就算變成好了也不一定成功,是的,但是你不會編程就一定不會成功。如果,我們想成為這個專業的成功者,我們就得愛上編程,不管他是怎么得乏味,怎么得無聊,我們都不能丟掉他。
總之,動手編程就是鍛煉我們的動手能力,當然這個動手能力并不是科研上的動手能力,而是我們的動手編程能力,記住,只要你真正的喜歡上他,你就會發現其中的樂趣,我相信,只要你堅持下去,你一定會喜歡上他,把編程當作自己日常生活中一件必須做的事情。
數據結構程序設計心得體會 篇9
做了一個星期的程序設計終于做完了,在這次程序設計課中,真是讓我獲益匪淺,我突然發現寫程序還挺有意思的。
由于上學期的C語言跟這學期的數據結構都算不上真正的懂,對于書上的稍微難點的知識就是是而非的,所以我只是對老師的程序理解,我也試著去改變了一些變量,自己也盡量多的去理解老師做程序的思路。當我第一天坐在那里的時候,我就不知道該做些什么,后來我只有下來自己看了一遍書來熟悉下以前學過的知識。
通過這次的程序設計,發現一個程序設計就是算法與數據結構的結合體,自己也開始對程序產生了前所未有的興趣,以前偷工減料的學習也不可能一下子寫出一個程序出來,于是我就認真看老師寫的程序,發現我們看懂了一個程序其實不難,難的是對于一個程序的思想的理解,我們要掌握一個算法,不僅僅限于讀懂,主要的是要理解老師的思路,學習老師的解決問題的方法。
這次試驗中,我發現書本上的知識是一個基礎,但是我基礎都沒掌握,更別說寫出一個整整的程序了。自己在寫程序的時候,也發現自己的`知識太少了,特別是基礎知識很多都是模模糊糊的一個概念,沒有落實到真正的程序,所以自己寫的時候也感到萬分痛苦,基本上涉及一個知識我就會去看看書,對于書本上的知識沒掌握好。在飯后閑暇時間我也總結了一下,自己以前上課也認真的聽了,但是還是寫不出來,這主要歸結于自己的練習太少了,而且也總是半懂就不管了。在改寫老師的程序中也出現了很多的問題,不斷的修改就是不斷的學習過程,當我們全身心的投入其中時,實際上是一件很有樂趣的事情。對于以后的學習有了幾點總結:第一、熟記各種數據結構類型,定義、特點、基本運算(分開點一點也沒多少東西,難度不大,但是基本);第二、各種常用的排序算法,如冒泡排序、堆排序……,這些是必考的內容,分數不會少于20%;第三,多做習題,看題型,針對題型來有選擇復習;數據結構看上去很復雜,但你靜下心來把書掃上幾遍,分解各個知識點,這一下來,學數據結構的思路就會很清晰了。
數據結構程序設計心得體會 篇10
“數據結構與算法課程設計”是計算機科學與技術專業學生的集中實踐性環節之一,是學習“數據結構與算法”理論和實驗課程后進行的一次全面的綜合練習。其目的是要達到理論與實際應用相結合,提高學生組織數據及編寫程序的能力,使學生能夠根據問題要求和數據對象的特性,學會數據組織的方法,把現實世界中的實際問題在計算機內部表示出來并用軟件解決問題,培養良好的程序設計技能。
當初拿到這次課程設計題目時,似乎無從下手,但是經過分析可知,對于簡單文本編輯器來說功能有限,不外乎創作文本、顯示文本、統計文本中字母—數字—空格—特殊字符—文本總字數、查找、刪除及插入這幾項功能。于是,我進行分模塊進行編寫程序。雖然每個模塊程序并不大,但是每個模塊都要經過一番思考才能搞清其算法思想,只要有了算法思想,再加上C程序語言基礎,基本完成功能,但是,每個模塊不可能一次完成而沒有一點錯誤,所以,我給自己定了一個初級目標:用C語言大體描述每個算法,然后經調試后改掉其中明顯的錯誤,并且根據調試結果改正一些算法錯誤,當然,這一目標實現較難。最后,經過反復思考,看一下程序是否很完善,如果能夠達到更完善當然最好。并非我們最初想到的算法就是最好的算法,所以,有事我們會而不得不在編寫途中終止換用其他算法,但是,我認為這不是浪費時間,而是一種認識過程,在編寫程序中遇到的問題會為我們以后編寫程序積累經驗,避免再犯同樣的錯誤。但是,有的方法不適用于這個程序,或許會適用于另外一個程序。所以,探索的過程是成長的過程,是為成功做的鋪墊。經過努力后獲得成功,會更有成就感。
在課程設計過程中通過獨立解決問題,首先分析設計題目中涉及到的數據類型,在我們學習的數據存儲結構中不外乎線性存儲結構及非線性存儲結構,非線性存儲結構中有樹型,集合型,圖型等存儲結構,根據數據類型設計數據結點類型。然后根據設計題目的主要任務,設計出程序大體輪廓(包括子函數和主函數),然后對每個子函數進行大體設計,過程中錯誤在所難免,所以要經過仔細探索,對每個函數進行改進。
程序基本完成后,功能雖然齊全,但是程序是否完善(例如,輸入數據時是否在其范圍之內,所以加入判斷語句是很有必要的)還需運行測試多次,如有發現應該對其進行改善,當然要在力所能及的前提下。
課程設計過程雖然短暫,但是使我深刻理解數據結構和算法課程對編程的重要作用,還有“數據結構與算法”還提供了一些常用的基本算法思想及算法的編寫程序。通過獨立完成設計題目,使我系統了解編程的基本步驟,提高分析和解決實際問題的能力。通過實踐積累經驗,才能有所創新。正所謂,良好的基礎決定上層建筑。只有基本功做好了,才有可能做出更好的成果。
數據結構程序設計心得體會 篇11
通訊錄管理系統是基于雙向循環鏈表設計而成的信息管理系統。該系統通過對程序進行模塊化,建立添加、顯示、查找和刪除功能的函數,各函數中運用雙向循環鏈表存儲數據。為存儲通訊錄信息,需定義一個結構體類型,成員包括姓名、街道、城市、郵編、國家等,并建立雙向循環鏈表,定義該結構體類型的指針,用于指向各結點。分別建立具有添加、刪除、修改、查詢等功能的子函數,完成相應功能,對程序實現模塊化。這其中要用到對鏈表的刪除、插入等知識。為實現存儲功能,需用到文件的相關函數
開發一個通訊錄管理系統,借助計算機可以方便、快捷、靈活的管理個人的朋友及相關人員的通訊信息,了解友人相關信息,幫助與友人保持聯絡。所以設計一個通訊錄管理系統管理各人的通訊信息是非常必要的,同時,通過用循環雙向鏈表設計通訊錄管理系統可以讓我們更好的去理解循環雙向鏈表,更好的學好數據結構這門課程。
本次實驗中,我們使用分工合作的方式,首先定義了函數的結構體部分,剩下的根據函數所要實現的功能進行分工合作,我實現的是通訊錄中刪除功能的子函數,刪除信息(void (dnode head))的功能是按照用戶輸入的姓名首先進行按姓名查詢功能,查找成功,則執行刪除信息的功能,查詢不成功,則提示錯誤信息。定義結點p,輸入要刪除的信息的姓名,按姓名查找結點,如果找到匹配的結點p,就進行相關的刪除操作,否則就是沒找到要刪除的數據,最后返回到主函數。
這次實驗中我深刻認識到合作的重要性。例如:我所編寫的按名刪除功能的實現中,應用了章林霞同學所編寫寫的按名搜索查詢功能的那部分函數,在這次實驗中,我學到很多東西,加強了我的動手能力,并且培養了我的獨立思考能力。我們堅持理論聯系實際的思想,以實踐證實理論,從實踐中加深對理論知識的理解和掌握。實驗是我們快速認識和掌握理論知識的一條重要途徑。
數據結構程序設計心得體會 篇12
通過這次模具設計,我在多方面都有所提高。
一、編譯工具VisualC++
很多程序在結構上是獨立的,但是本此設計的程序功能不是零散的,它有一個連接是的程序是一個整體,怎樣達到這種統一體呢?因為這個輸出連接是貫穿始終的。說到這,就應該說以下我所應用的調試工具,也就是運行環境VisualC++,可以充分利用Windows的支持剪貼版和英文的特點。正是在實現循環鏈表的程序中充分利用這個特點,才能制作出全漢化的初始化畫面。
二、鞏固和溫習了C語言
在界面設置中使用函數調用while。其中文本顯示顏色和背景顏色都可以任意按照自己的喜好,任意改變,但改變的時候必須采用標準英文大寫,同時在制作顯示菜單的窗口,大小根據菜單條數設計。最后采用printf輸出程序設計界面。
這次的程序軟件基本上運行成功,可以簡單的建立鏈式循環鏈表,并進行輸出,及循環語句的運用和選擇語句的控制。由于時間和知識上的限制,使得程序規模相對較小,即功能還不很全面,應用也不很普遍。原來C語言可是涉及很多知識,而不是枯燥無聊的簡單的代碼部分而已,利用C語言方面的知識,我們可以設計出更完善的軟件。
三、積累了寶貴的經驗
我這次課程設計代碼中主要使用了鏈表的循環和遍歷這兩中操作。循環鏈表(CircularLinkedList)是單鏈表的另一種形式,它是一個首尾相接的鏈表。其特點是將單鏈表最后一個結點的指針域由NULL改為指向頭結點或線性表中的第一個結點,就得到了單鏈形式的循環鏈表,并稱為循環單鏈表。類似地,還有多重鏈的循環鏈表。在循環單鏈表中,表中所有結點被鏈在一個環上,多重循環鏈表則是將表中的結點鏈在多個環上。為了使某些操作實現起來方便,在循環單鏈表中也可設置一個頭結點。這樣,空循環鏈表僅由一個自成循環的頭結點表示。所謂遍歷(Traversal),是指沿著某條搜索路線,依次對樹中每個結點均做一次且僅做一次訪問。訪問結點所做的操作依賴于具體的應用問題。這次課程設計我選中的題目是個人資料的管理。編寫了一個可以簡易使用的個人資料管理系統,可以進行資料的輸入和管理。雖然在我的程序中有一部分是從網上搜索得來的,但我已經竭力將所獲得的信息變成自己的資源,動手上機操作,在了解和看懂的基礎上有所改變和創新,但是在的程序軟件中還有部分的不足,需要加以更新。僅管,我并沒能很好的利用所學數據結構的知識,但我也盡了自己最大的努力用我所學來完成這次的課程設計。同時,通過這次課程設計,我認識到了自己動手實踐的弱勢,特別是在編程方面,知道了計算機的實踐操作是很重要的,只有通過上機編程才能充分的了解自己的不足。
四、對以后的學習充滿了信心和期待
通過這次的課程設計,更是讓我深刻認識到自己在學習中的不足,同時也找到了克服這些不足的方法,這也是一筆很大的資源。在以后的時間中,我們應該利用更多的時間去上機實驗,加強自學的能力,多編寫程序,相信不久后我們的編程能力都會有很大的提高能設計出更多的更有創新的作品。
【數據結構程序設計心得體會】相關文章:
程序設計心得體會11-12
數據結構課設的心得體會09-05
數據結構課程設計心得體會08-21
數據結構筆試題12-01
數據結構算法題10-28
數據結構實習報告04-01
數據結構實習心得11-01
數據結構課程建設10-07
c語言程序設計心得體會05-08