?

《數據結構》課程教學思考

2011-04-10 01:43長江大學電子信息學院湖北荊州434023
長江大學學報(自科版) 2011年34期
關鍵詞:鏈表數據結構指針

(長江大學電子信息學院,湖北 荊州434023)

《數據結構》是計算機和信息類專業的一門重要的專業核心課程,其教學效果直接影響學生對 《數據庫技術》、《操作系統》和 《計算機網絡》等相關課程的理解。通過該課程的學習,學生可以靈活運用C語言進行編程來解決實際問題。因此,該課程在整個課程體系中占有重要地位。下面,筆者通過分析學生學習該課程中存在的問題,探討相關改革措施,為 《數據結構》課程教學提供參考。

1 存在的問題

1.1 C語言基礎知識掌握不扎實

C語言是學生首先學習的一門計算機編程語言,在理解上有一定難度,而 《數據結構》中為了描述數據結構和實現某些操作,經常用到指針和結構體部分的知識,這屬于C語言高級技術部分,學生很難理解和掌握。由于學生對指針和結構體方面的編程等內容十分生疏,學習 《數據結構》課程時就顯得力不從心。

1.2 抽象思維能力較差

《數據結構》課程中的數據結構一般指數據間的邏輯結構,如線性表、二叉樹和圖結構等。雖然教材中配了很多圖示,但在實現上述結構的操作時,學生還是感覺內容抽象,不知如何下手,在閱讀教材上的算法程序時也難以理解,這使得該課程的教學效果不理想。

2 課程教學改革措施

2.1 加強C語言方面知識教學

《數據結構》是一門實踐性很強的課程,其中算法思想很多是用C語言描述的,這就要求熟練掌握C語言。因此,學好該課程的關鍵就是打好C語言的基礎。在課程開始階段,可將 《數據結構》課程中常用的C語言知識單獨作為專題進行講解,如指針、結構體、數組、自定義類型等內容,以鏈表結點為例,通常將其定義如下[1]:

首先要學生明白上述定義是對鏈表中單個結點結構的描述,而不是對整個鏈表結構的描述。在定義新的結構體類型LNode的同時,使用typedef定義了2個用戶自定義類型LNode和LinkList,分別用來定義鏈表結點變量和指向結點的指針變量。結構體類型LNode中有2個成員,分別代表了結點的數據域和指針域,結點數據域data的數據類型用ElemType來定義,其本身也是一個宏或自定義類型,指針域next是一個指向下一個結點的指針變量。由此可以看出,盡管關于鏈表結點定義的代碼只有幾行,卻包含了很多C語言方面的知識。只有當學生熟練掌握這些內容后,才能夠比較方便地閱讀 《數據結構》中的代碼,徹底理解每一條語句的含義和整體的功能。

2.2 注重培養學生的抽象思維能力

由于 《數據結構》課程內容抽象,學生理解困難,為此教師應精心組織每一堂課的教學內容。教師應盡量采用多媒體教學,通過使用動畫、圖示等展示各種數據結構的特征與常見操作,結合程序分析和動畫演示將抽象的知識具體化和形象化。以鏈表中刪除某個結點的操作為例(見圖1),其存在如下2種情況:

圖1 帶頭結點的單鏈表示意圖

1)當需要刪除單鏈表中指針p所指向的結點的直接后繼結點時,復雜度為O(1),其代碼如下:

2)當需要刪除單鏈表中指針p所指向的結點時,由于要獲取其直接前驅結點的地址,需要從首結點開始進行掃描,檢測每個結點的直接后繼結點是否為p,即可找到p的直接前驅結點的地址,復雜度為O(n),其代碼如下:

從上述教學實例可以看出,通過圖示的方法可以比較直觀地反映出問題的實質,由此可以解決學生抽象思維能力較差的問題。

3 結 語

針對學生學習 《數據結構》課程中存在的問題,提出了相應教學改革措施,即加強C語言方面知識教學和注重培養學生的抽象思維能力。教學實踐表明,采取上述措施后提高了學生學習積極性,課堂教學效果得到明顯改善,得到了學生的認可。

[1]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,2003.

猜你喜歡
鏈表數據結構指針
數據結構線上線下混合教學模式探討
基于二進制鏈表的粗糙集屬性約簡
跟麥咭學編程
基于鏈表多分支路徑樹的云存儲數據完整性驗證機制
為什么表的指針都按照順時針方向轉動
“翻轉課堂”教學模式的探討——以《數據結構》課程教學為例
高職高專數據結構教學改革探討
基于改進Hough變換和BP網絡的指針儀表識別
CDIO模式在民辦院校數據結構課程實踐教學中的應用
鏈表方式集中器抄表的設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合