數據結構課程設計心得體會2篇 探索數據結構:課程設計分享

來源:巧巧簡歷站 2.29W

在數據結構課程設計的過程中,我深刻體會到了它在計算機科學領域的重要性。通過對各種數據結構及其算法的學習和實踐,我深入理解了數據組織、存儲和處理的原理。本文將分享我在課程設計中的心得體會,以希望能給讀者帶來一些啟發和思考。

數據結構課程設計心得體會2篇 探索數據結構:課程設計分享

第1篇

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

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

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

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

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

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

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

數據結構課程設計心得體會2篇 探索數據結構:課程設計分享 第2張

第2篇

通過本次課程設計,對圖的概念有了一個新的認識,在學習離散數學的時候,總覺得圖是很抽象的東西,但是在學習了《數據結構與算法》這門課程之後,我慢慢地體會到了其中的奧妙,圖能夠在計算機中存在,首先要捕捉他有哪些具體化、數字化的信息,比如説權值、頂點個數等,這也就説明了想要把生活中的信息轉化到計算機中必須用數字來完整的構成一個信息庫,而圖的存在,又涉及到了頂點之間的聯繫。

圖分為有向圖和無向圖,而無向圖又是有向圖在權值雙向相等下的一種特例,如何能在計算機中表示一個雙向權值不同的圖,這就是一件很巧妙的事情,經過了思考和老師同學的幫助,我用edges[i][j]=up和edges[j][i]=up就能實現了一個雙向圖信息的存儲。

對整個程序而言,dijkstra算法始終都是核心內容,其實這個算法在實際思考中並不難,也許我們誰都知道找一個路徑最短的`方法,及從頂點一步一步找最近的路線並與其直接距離相比較,但是,在計算機中實現這麼一個很簡單的想法就需要涉及到很多專業知識,為了完成設計,在前期工作中,基本都是以學習c語言為主,所以浪費了很多時間,比如説在程序中,刪除頂點和增加頂點的模塊中都有和建圖模塊相互重複的函數,但是由於技術的原因,只能做一些很累贅的函數,可見在調用知識點,我沒有掌握好。不過,有了這次課程設計的經驗和教訓,我能夠很清楚的對自己定一個合適的水平,而且在這次課程設計中我學會了運用兩個新的函數sprintf和包涵在#include頭文件中的輸入函數。因為課程設計的題目是求最短路徑,本來是想通過算法的實現把這個程序與交通情況相連,但是因為來不及查找各地的信息,所以,這個計劃就沒有實現,我相信在以後有更長時間的情況下,我會做出來的。

熱門標籤