資料結構心得

發佈日期:2024-12-06

陳俊達

理工學院

應用數學系

資料結構心得 

參加由助教舉辦的資料結構補救教學,對於我來說是一個重要的學習契機。這學期持續的參加補救中,不僅幫助我補足了對資料結構的不足理解,還讓我體會到如何將不同觀念靈活搭配來解決實際的程式題目同時,我也學會從不同角度思考問題,從而找到最適合的解法,這讓我的學習過程更加豐富而立體,在補救教學中,助教從基礎開始講解了資料結構的重要概念,包括陣列、鏈結串列、堆疊與佇列、樹、圖,以及雜湊表等結構的特性與應用這次教學是讓我清楚理解了每種結構的適用場景例如,陣列適合隨機訪問但在插入或刪除元素時效率較低,而鏈結串列則在動態插入與刪除中表現更佳在這兩者的比較中,我學會了如何根據需求選擇合適的結構,另外我發現助教特別針對堆疊與佇列進行了深入講解,並配合實際題目,像是如何利用堆疊實現括號匹配的檢查,或是如何透過佇列模擬一個列車站的運行過程這些例子不僅幫助我鞏固了基礎,也讓我了解到資料結構在現實問題中的應用價值,而在實際學習中,我發現資料結構的使用往往需要從多個角度來思考,就像是當處理一個運動比賽分數排名的問題時,可以使用陣列來儲存分數,但當需要動態地插入或刪除選手時,改用平衡二元搜尋樹可能更具效率助教在這方面的講解讓我理解到,資料結構的選擇並非一成不變,而是需要根據問題的特性進行權衡,令我印象深刻的一次補救中,助教分享了一個經典問題——迷宮求解,這需要用到圖的表示與遍歷演算法在這題中,助教首先介紹了如何用鄰接矩陣與鄰接串列來表示迷宮,並討論了深度優先搜尋DFS與廣度優先搜尋BFS的差異透過比較這兩種演算法的特點,我了解到DFS適合探索整個迷宮的所有可能路徑,而BFS則能更快地找到最短路徑這讓我了解到同一個問題可能有多種解法,而選擇合適的演算法和資料結構是解題的關鍵,另外,助教還特別強調了如何將不同的資料結構和演算法結合起來,應對複雜的題目,例如,講解了如何利用堆疊模擬樹的非遞迴遍歷,或者如何用優先佇列實現Dijkstra最短路徑演算法。在這部分的學習中,我感受到資料結構與演算法的深度融合,也體會到兩者之間密不可分的關係助教還提到,當面對時間複雜度與空間複雜度的權衡時,可以適當地進行優化,在排序問題中,當資料量較小時,可以使用插入排序,因為其實作簡單且對小規模資料效率較高但當資料量較大時,則需要選擇更高效的排序演算法如快速排序或合併排序。這些建議讓我理解到,找到最方便的解法並不意味著選擇最簡單的工具,而是需要綜合考慮問題的規模與需求,做出最明智的選擇透過這次補救教學,我對資料結構有了更深入的理解,還學會了如何從多角度思考問題,以及如何靈活地將各種觀念結合起來解決實際問題資料結構的學習不僅僅是一門技術能力的提升,更是一種思維方式的培養。