欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      數據結構與算法教學大綱

      時間:2019-05-13 21:37:51下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《數據結構與算法教學大綱》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《數據結構與算法教學大綱》。

      第一篇:數據結構與算法教學大綱

      《數據結構》教學大綱

      一、課程基本信息

      課程名稱:數據結構

      總學時:64(理論課內學時48,上機課內學時16)課程設計:24 課程類型:必修課

      考試形式:半開卷考試 講課對象:計算機本科

      建議教材:《數據結構》(C語言版)陳明 編著 清華大學出版社

      課程簡介:數據結構課程介紹如何組織各種數據在計算機中的存儲、傳遞和轉換。內容包括:數組、鏈接表、棧和隊列、串、樹與森林、圖、排序、查找、索引與散列結構等。課程以結構化程序設計語言C語言作為算法的描述工具,強化數據結構基本知識和結構化程序設計基本能力的雙基訓練。為后續(xù)計算機專業(yè)課程的學習打下堅實的基礎。

      二、課程的教學目標

      “數據結構”是計算機相關專業(yè)的一門重要專業(yè)基礎課,是計算機學科的公認主干課。課程內容由數據結構和算法分析初步兩部分組成。

      數據結構是針對處理大量非數值性程序問題而形成的一門學科,內涵豐富、應用范圍廣。它既有完整的學科體系和學科深度,又有較強的實踐性。通過課程的學習,應使學生理解和掌握各種數據結構(物理結構和邏輯結構)的概念及其有關的算法;熟悉并了解目前常用數據結構在計算機諸多領域中的基本應用。

      算法分析強調最基本的算法設計技術和分析方法。要求學生從算法和數據結構的相互依存關系中把握應用算法設計的藝術和技能。

      經過上機實習和課程設計的訓練,使學生能夠編制、調試具有一定難度的中型程序;以培養(yǎng)良好的軟件工程習慣和面向對象的軟件思維方法。

      “數據結構”的前序課是《離散數學》、《C語言程序設計與算法初步》。

      三、理論教學內容的基本要求及學時分配

      1、序論(2學時)學習目標:熟悉各類文件的特點,構造方法以及如何實現(xiàn)檢索,插入和刪除等操作。

      重點與難點:本章無。

      知識點:數據、數據元素、數據結構、數據類型、抽象數據類型、算法及其設計原則、時間復雜度、空間復雜度。

      2、線性表(4學時)

      學習目標:

      (1)了解線性表的邏輯結構特性是數據元素之間存在著線性關系,在計算機中表示這種關系的兩類不同的存儲結構是順序存儲結構和鏈式存儲結構。用前者表示的線性表簡稱為順序表,用后者表示的線性表簡稱為鏈表;

      (2)熟練掌握這兩類存儲結構的描述方法以及線性表的基本操作在這兩種存儲結構上的實現(xiàn);

      (3)能夠從時間和空間復雜度的角度綜合比較線性表兩種存儲結構的不同特點及其適用場合;

      (4)結合線性表類型的定義增強對抽象數據類型的理解。

      重點與難點:鏈表是本章的重點和難點。扎實的指針操作和內存動態(tài)分配的編程技術是學好本章的基本要求,分清鏈表中指針 p 和結點 *p 之間的對應關系,區(qū)分鏈表中的頭結點、頭指針和首元結點的不同所指以及循環(huán)鏈表、雙向鏈表的特點等。

      知識點:線性表、順序表、鏈表、有序表。

      3、棧和隊列(4學時)

      學習目標:

      (1)掌握棧和隊列這兩種抽象數據類型的特點,并能在相應的應用問題中正確選用它們;

      (2)熟練掌握棧類型的兩種實現(xiàn)方法;

      (3)熟練掌握循環(huán)隊列和鏈隊列的基本操作實現(xiàn)算法;(4)理解遞歸算法執(zhí)行過程中棧的狀態(tài)變化過程。

      重點與難點:棧和隊列是在程序設計中被廣泛使用的兩種線性數據結構,因此本章的學習重點在于掌握這兩種結構的特點,以便能在應用問題中正確使用。

      知識點:順序棧、鏈棧、循環(huán)隊列、鏈隊列。

      4、串(2學時)

      學習目標:(1)理解串類型定義中各基本操作的特點,并能正確利用它們進行串的其它操作;

      (2)理解串類型的各種存儲表示方法;(3)理解串匹配的各種算法。

      重點和難點:相對于其它各個知識點而言,本章非整個課程的重點,鑒于串已是多數高級語言中已經實現(xiàn)的數據類型,因此本章重點僅在于了解串類型定義中各基本操作的定義以及串的實現(xiàn)方法,并學會利用這些基本操作來實現(xiàn)串的其它操作。本章的難點是理解實現(xiàn)串匹配的KMP算法的思想。

      知識點:串的類型定義、串的存儲表示、串匹配、KMP算法。

      5、數組和廣義表(4學時)

      學習目標:

      (1)理解數組類型的特點及其在高級編程語言中的存儲表示和實現(xiàn)方法,并掌握數組在“以行為主”的存儲表示中的地址計算方法;

      (2)掌握特殊矩陣的存儲壓縮表示方法;

      (3)理解稀疏矩陣的兩類存儲壓縮方法的特點及其適用范圍,領會以三元組表示稀疏矩陣時進行矩陣運算所采用的處理方法。

      重點和難點:本章重點是學習數組類型的定義及其存儲表示。

      知識點:數組的類型定義、數組的存儲表示、特殊矩陣的壓縮存儲表示方法、隨機稀疏矩陣的壓縮存儲表示方法。

      6、樹和二叉樹(8學時)

      學習目標:

      (1)領會樹和二叉樹的類型定義,理解樹和二叉樹的結構差別;(2)熟記二叉樹的主要特性,并掌握它們的證明方法;

      (3)熟練掌握二叉樹的各種遍歷算法,并能靈活運用遍歷算法實現(xiàn)二叉樹的其它操作;

      (4)理解二叉樹的線索化過程以及在中序線索化樹上找給定結點的前驅和后繼的方法;

      (5)熟練掌握二叉樹和樹的各種存儲結構及其建立的算法;(6)學會編寫實現(xiàn)樹的各種操作的算法;

      (7)了解最優(yōu)樹的特性,掌握建立最優(yōu)樹和赫夫曼編碼的方法。

      重點和難點:二叉樹和樹的遍歷及其應用是本章的學習重點,而編寫實現(xiàn)二叉樹和樹的各種操作的遞歸算法也恰是本章的難點所在。

      知識點:樹的類型定義、二叉樹的類型定義、二叉樹的存儲表示、二叉樹的遍歷以及其它操作的實現(xiàn)、線索二叉樹、樹和森林的存儲表示、樹和森林的遍歷以及其它操作的實現(xiàn)、最優(yōu)樹和赫夫曼編碼。

      7、圖(8學時)

      學習目標:

      (1)領會圖的類型定義;

      (2)熟悉圖的各種存儲結構及其構造算法,了解各種存儲結構的特點及其選用原則;

      (3)熟練掌握圖的兩種遍歷算法;(4)理解各種圖的應用問題的算法。

      重點和難點:圖的應用極為廣泛,而且圖的各種應用問題的算法都比較經典,因此本章重點在于理解各種圖的算法及其應用場合。

      知識點:圖的類型定義、圖的存儲表示、圖的深度優(yōu)先搜索遍歷和圖的廣度優(yōu)先搜索遍歷、無向網的最小生成樹、最短路徑、拓撲排序、關鍵路徑。

      8、查找(6學時)

      學習目標:

      (1)理解“查找表”的結構特點以及各種表示方法的適用性;(2)熟練掌握以順序表或有序表表示靜態(tài)查找表時的查找方法;

      (3)熟悉靜態(tài)查找樹的構造方法和查找算法,理解靜態(tài)查找樹和折半查找的關系;

      (4)熟練掌握二叉查找樹的構造和查找方法;(5)理解二叉平衡樹的構造過程;

      (6)熟練掌握哈希表的構造方法,深刻理解哈希表與其它結構的表的實質性的差別;

      (7)掌握描述查找過程的判定樹的構造方法,以及按定義計算各種查找方法在等概率情況下查找成功時的平均查找長度。

      重點和難點:本章重點在于理解查找表的結構特點及其各種表示方法的特點和適用場合。

      知識點:順序表、有序表、索引順序表、靜態(tài)查找樹、二叉查找樹、二叉平衡樹、哈希表。

      9、內部排序(6學時)

      學習目標:

      (1)理解排序的定義和各種排序方法的特點,并能加以靈活應用。排序方法有不同的分類方法,基于“關鍵字間的比較”進行排序的方法可以按排序過程所依據的不同原則分為插入排序、交換排序、選擇排序、歸并排序和計數排序等五類;

      (2)掌握各種排序方法的時間復雜度的分析方法。能從“關鍵字間的比較次數”分析排序算法的平均情況和最壞情況的時間性能。按平均時間復雜度劃分,內部排序可分為三類:O(n2)的簡單排序方法,O(n*logn)的高效排序方法和O(d*n)的基數排序方法;

      (3)理解排序方法“穩(wěn)定”或“不穩(wěn)定”的含義,弄清楚在什么情況下要求應用的排序方法必須是穩(wěn)定的。

      重點和難點:希爾排序、快速排序、堆排序和歸并排序等高效方法是本章的學習重點和難點。

      知識點:排序、直接插入排序、折半插入排序、表插入排序、希爾排序、起泡排序、快速排序、簡單選擇排序、堆排序、2-路歸并排序、基數排序、排序方法的綜合比較。

      10、文件(4學時)

      學習目標:熟悉各類文件的特點,構造方法以及如何實現(xiàn)檢索,插入和刪除等操作。

      重點和難點:本章重點在于了解各種文件的結構特點及其適用場合。知識點:順序文件、索引文件、B-樹、B+樹、索引順序文件、VSAM文件、散列文件、多關鍵字文件。

      四、實驗教學內容的基本要求及學時分配

      1、線性表(1學時)實驗一 順序表的應用 實驗二 鏈表的應用

      要求:理解線性表的定義及其運算;理解順序表和鏈表的定義,組織形式,結構特征和類型說明;掌握在這兩種表上實現(xiàn)的插入,刪除和按值查找的算法;了解循環(huán)鏈表,雙(循環(huán))鏈表的結構特點和在其上施加的插入,刪除等操作。

      2、棧(0.5學時)實驗三 棧的應用

      要求:理解棧的定義,特征及在其上所定義的基本運算;掌握在兩種存儲結構上對棧所施加的基本運算的實現(xiàn)。

      3、隊列(0.5學時)實驗四 隊列的應用

      要求:理解隊列的定義,特征及在其上所定義的基本運算;掌握在兩種存儲結構上對隊列所施加的基本運算的實現(xiàn)。

      4、串(0.5學時)實驗五 串的應用

      要求:了解串的定義;理解和領會串的存儲方式;掌握常用的串運算。

      5、數組和廣義表(0.5學時)實驗六 稀疏矩陣的應用

      要求:理解多維數組的結構特點和在內存中的兩種順序存儲方式;理解并掌握矩陣和特殊矩陣元素在存儲區(qū)中地址的計算;領會稀疏矩陣的壓縮方式和簡單運算;了解廣義表的定義和基本運算。

      6、樹與二叉樹(4學時)實驗七 樹與二叉樹的應用

      要求:理解樹的定義,術語;領會并掌握樹的各種存儲結構;熟練掌握森林與二叉樹間的相互轉換;領會樹和森林的遍歷;了解樹的簡單應用。深刻理解二叉樹的定義,性質及其存儲方法;熟練掌握二叉樹的二叉鏈表存儲方式,結點結構和類型定義;理解并掌握二叉樹的三種遍歷算法;掌握二叉樹的線索化方法;靈活運用二叉樹的遍歷方法解決相關的應用問題。

      7、圖(3學時)實驗八 圖的應用

      要求:理解圖的基本概念及術語;掌握圖的兩種存儲結構(鄰接矩陣和鄰接表)的表示方法;熟練掌握圖的兩種遍歷(深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷)的算法思想,步驟,并能列出在兩種存儲結構上按上述兩種遍歷算法得到的序列;理解最小生成樹的概念,能按Prim算法構造最小生成樹;領會并掌握拓撲排序,關鍵路徑,最短路徑的算法思想。

      8、查找(3學時)實驗九 順序查找 實驗十 折半查找 實驗十一 哈希表的應用 實驗十二 二叉排序樹的綜合練習要求:了解查找的基本思想及查找成功和不成功的概念;掌握在順序表,有序表,索引表,散列表等上的查找方法和算法,并能求出相應的平均查找長度;理解并掌握二叉排序樹,平衡二叉樹B-樹的各種算法。

      9、排序(3學時)實驗十三 插入排序 實驗十四 選擇排序 實驗十五 排序綜合練習

      要求:領會排序的基本思想和基本概念;理解并掌握插入排序,冒泡排序,快速排序,直接選擇排序,堆排序,歸并排序和基數排序的基本思想,步驟,算法及時空效率分析;了解外排序的定義和基本方法。

      五、大綱說明

      1、課堂講述的論題只是核心或有特色的知識內容,還有相當數量的篇章內容留給學生自學,所確定的自學部分內容亦屬考查范圍。

      2、“數據結構”課注重上機訓練,所有作業(yè)都必須配有規(guī)范的文檔。上機訓練由平時的上機訓練和小學期的實訓課程設計兩部分組成。

      3、課內學時安排說明:前8周每周4學時全為理論課,從第9周開始理論和上機為1:1,也即2學時理論,2學時上機訓練。

      4、本課強調能力的培養(yǎng),期末采用半開卷考試(允許同學攜帶一頁A4紙的總結資料)。本課成績由平時作業(yè)、上機成績(30%)和期末考試(70%)合成得到,有獨到見解的作業(yè)予以適當加分。

      5、主要參考書:

      [1]《數據結構與算法教程》鄒永林 周蓓 唐曉陽 楊劍勇 編著 機械工業(yè)出版社

      [2]《數據結構(C語言版)》(含CD)嚴蔚敏 吳為民 編著 清華大學出版社

      [3]《數據結構習題集(C語言版)》嚴蔚敏 編著 清華大學出版社

      [4]《數據結構習題解析與實訓》張世和 編著 清華大學出版社

      第二篇:《數據結構與算法》課程設計教學大綱

      《數據結構與算法》課程設計教學大綱(Data Structures & Algorithms)

      一、基本信息

      課程編號:E1132107 課程類別:學科基礎課必修課 適用層次:本科

      適用專業(yè):計算機科學與技術、網絡工程、軟件工程等 開課學期:3 學 分:2學分 學 時:2周 考核方式:考查

      二、教學目的

      數據結構與算法課程設計不僅是數據結構與算法課程的實踐教學環(huán)節(jié),而且是一門綜合性實驗項目。通過這個實驗,培養(yǎng)學生綜合運用數據結構基本知識和程序設計基本知識,解決實際問題,提高程序設計的能力和團隊協(xié)作精神。

      本課程設計的目的就是要達到理論與實際應用相結合,使同學們能夠根據數據對象的特性,學會數據組織的方法,能把現(xiàn)實世界中的實際問題在計算機內部表示出來,并培養(yǎng)基本的、良好的程序設計技能。

      1.學生通過實踐掌握線性表、樹、圖等數據結構的存儲結構及算法實現(xiàn); 2.培養(yǎng)學生利用數據結構知識解決實際問題的能力;3.使學生初步具備查閱資料、分析設計、上機實現(xiàn)和書寫科技 報告的能力。

      三、基本要求

      1.指導教師要在選題、設計、上機實現(xiàn)等諸環(huán)節(jié)上投入精力,加強指導、討論和答疑的力度。尤其在選題上,要充分考慮學生目前所具有的知識水平、掌握的開發(fā)工具、以及綜合設計能力的現(xiàn)狀,使題目取材合理、大小適中、難易適度,使學生在完成設計工作后,能有所收獲。2.參加課程設計的學生要珍惜機會、勤奮工作、勇于創(chuàng)新、勇于探索、勇于實踐,虛心向指導教師請教,向同學學習,獨立完成設計任務。

      3.學生需保質、保量、保時間進度地提交規(guī)范的課程設計報告,審查由指導教師負責。

      四、教學內容

      1.主要內容:應用所掌握的線性表、樹、圖等數據結構知識解決實際問題。2.軟件開發(fā)工具:C/C++、JAVA。

      3.課程設計題目:指導教師擬定(參考題目見附錄1)

      4.具體步驟:指導教師擬定設計題目,學生研究具體問題、進行需求分析、選擇合適的數據結構、設計算法、編寫并調試代碼、書寫文檔材料、提交設計報告,最后,由指導教師驗收并評定成績。

      5.設計內容及時間安排:第1-3天,選定題目,明確題目要求、確定數據結構、設計算法,并分析算法復雜度;第4-8天,編寫程序、調試程序、測試程序;第9-10天,撰寫設計報告,準備答辯(上機演示,回答教師提問)。6.設計報告書寫要求:按照軟件開發(fā)規(guī)范的要求書寫設計報告(參見附錄三報告書寫格式);要求報告層次結構清晰、圖表完整、語言通順、字跡工整。7.驗收要求:1)運行所設計的程序;2)回答有關問題;3)提交課程設計報告(打印或手寫在實習報告冊上);4)提交軟盤(源程序)。(鼓勵學生創(chuàng)新。對內容有創(chuàng)新者,成績評定將適當提高)。

      五、考核方法

      學習成績的評定方式:考查。

      課程設計成績評定 =平時出勤(20%)+設計報告(40%)+答辯(40%)通過設計答辯方式,并結合學生的動手能力,獨立分析解決問題的能力和創(chuàng)新精神,總結報告和答辯水平以及學習態(tài)度綜合考評。成績分為優(yōu)、良、中、及格和不及格五等。

      六、教材與參考資料 1.建議教材:

      [1] 數據結構(C++)版,王紅梅、胡明、王濤編著,清華大學出版社,2005.7 [2] 自編教材

      2.建議參考書目:

      [1] 許卓群,楊冬青,唐世渭,張銘.數據結構與算法.高等教育出版社,2004.7 [2] 嚴蔚敏, 陳文博.數據結構及應用算法教程.清華大學出版社, 2001.2 [3] 朱晉蜀.數據結構(第一版).成都: 電子科技大學出版社, 2000.1 [4] Clifford A.Shaffer著.張銘,劉曉丹譯.數據結構與算法分析.電子工業(yè)出版社,1998.8 [5] 殷人昆等.數據結構(用面向對象方法與C++描述).清華大學出版社,1999.7 [6] Ford W., Topp W.DATA STRUCTURES with C++.清華大學出版社(影印版),1997.3

      附錄一

      參考題目(可分若干組,每個學生選擇其中一個題目)

      1.商廈家電庫存管理 2.排序算法的時間比較

      3.使用哈希表技術判斷兩個源程序的相似性 4.以隊列實現(xiàn)的仿真技術預測理發(fā)館的經營狀況 5.某公園導游圖

      6.用樹型結構的搜索算法模擬因特網域名的查詢 7.管道鋪設施工的最佳方案選擇 8.表達式分析與求值程序 9.安排教學計劃

      10.設計Huffman 編碼器與解碼器 11.在國際象棋盤上馬遍歷問題 12.八皇后問題 13.民航售票系統(tǒng) 14.模擬旅館管理系統(tǒng)中的床位分配和加收 15.銀行業(yè)務活動的模擬

      16.文字統(tǒng)計系統(tǒng)—文字研究助手 17.修道士野人問題 18.考試問題

      19.計算機輔助考核系統(tǒng) 20.學籍管理系統(tǒng)

      注:學生可以自選題目或選擇指導老師擬定的題目。

      附錄二

      開發(fā)步驟

      1.分析題目的要求、目的; 2.選擇適當的數據結構;

      3.抽象數據類型的設計; 4.抽象數據類型的實現(xiàn); 5.編寫代碼、上機調試; 6.總結驗收、評價。

      附錄三 報告書寫格式

      1.問題描述

      題目內容、基本要求 2.需求分析

      軟件的基本功能、輸入/輸出形式、測試數據要求 3.概要設計

      所需的ADT及作用、主程序流程及模塊調用關系 4.詳細設計

      實現(xiàn)概要設計的數據類型、每個操作的偽碼算法、主程序和其它模塊的偽碼算法、函數調用關系圖 5.編碼與調試分析

      編碼與調試過程中遇到的問題及解決的辦法,還存在哪些沒有解決的問題? 6.使用說明

      簡要說明程序運行操作步驟 7.測試結果

      8.課程設計心得體會

      第三篇:數據結構與算法課程教學大綱

      教學大綱

      數據結構與算法(Data Structures)

      計算機技術已成為現(xiàn)代化發(fā)展的重要支柱和標志,并逐步滲透到人類生活的各個領域。隨著計算機硬件的發(fā)展,對計算機軟件的發(fā)展也提出了越來越高的要求。由于軟件的核心是算法,而算法實際上是對加工數據過程的描述,所以研究數據結構對提高編程能力和設計高性能的算法是至關重要的。

      非數值計算問題的數學模型不再是傳統(tǒng)的數學方程問題,而是諸如表、樹、圖之類的數據結構。因此,簡單地說,數據結構是一門研究非數值計算的程序設計問題的學科,主要研究數據的邏輯結構、存儲結構和算法。

      一、教學目的與要求---了解數據的邏輯結構和物理結構;

      教學要求在每章教學內容給出,大體上為三個層次:了解、掌握和熟練掌握。他們的含義大致為:了解是正確理解概念,掌握是學會所學知識,熟練掌握就是運用所學知識解決實際問題。

      教學目的為:了解算法對于程序設計的重要性 ; 學習掌握基本數據結構的描述與實現(xiàn)方法,熟練掌握典型數據結構及其應用算法的設計。了解算法分析方法。

      二、教學重點與難點--數據結構中基本概念和術語,算法描述和分析方法。

      1、鏈表插入、刪除運算的算法。算法時間復雜度

      2、后綴表達式的算法,數制的換算

      利用本章的基本知識設計相關的應用問題

      3、循環(huán)隊列的特點及判斷溢出的條件

      利用隊列的特點設計相關的應用問題

      4、串的模式匹配運算算法

      5、二叉樹遍歷算法的設計

      利用二叉樹遍歷算法,解決簡單應用問題 哈夫曼樹的算法

      6、圖的遍歷

      最小生成樹

      最短路徑

      7、二叉排序樹查找

      平衡樹二叉樹

      8、堆排序

      快速排序 歸并排序

      三、教學方法與手段-充分利用多媒體教學工具,配合黑板上的教學內容較難部分的算法實現(xiàn)過程演義

      四、教學內容、目標與學時分配

      教學內容 教學目標 課時分配

      1、緒論

      數據結構的內容

      邏輯結構與存儲結構

      算法和算法分析

      2、線性表

      線性表的定義與運算

      線性表的順序存儲

      線性表的鏈式存儲

      3、棧

      棧的定義與運算

      棧存儲和實現(xiàn)

      棧的應用舉例

      4、隊列

      隊列的定義與基本運算

      隊列的存儲與實現(xiàn)

      隊列的應用舉例

      5、串

      串的定義與基本運算

      串的表示與實現(xiàn)

      串的基本運算

      6、樹和二叉樹

      樹的定義和術語

      二叉樹樹的基本概念和術語 遍歷二叉數和線索二叉樹

      二叉樹的轉換

      二叉樹的應用

      哈夫曼樹及其應用

      7、圖

      圖的定義和術語

      圖的存儲結構

      圖的遍歷算法

      圖的連通性

      8、查找

      查找的基本概念與靜態(tài)查找 動態(tài)查找

      哈希表

      了解

      了解

      掌握

      熟練掌握順序表存儲地址的計算

      掌握單鏈表的結構特點和基本運算

      掌握雙鏈表的結構特點和基本運算

      掌握棧的定義與運算

      掌握棧的存儲與實現(xiàn)

      熟練掌握棧的各種實際應用

      掌握隊列的定義與基本運算

      熟練掌握隊列的存儲與實現(xiàn)

      掌握循環(huán)隊列的特征和基本運算

      了解串的邏輯結構

      掌握串的存儲結構

      熟練掌握串的基本運算

      了解

      了解二叉樹

      熟練掌握二叉樹定義和存儲結構

      了解二叉樹的遍歷算法

      掌握

      掌握哈夫曼的建立及編碼

      了解

      了解

      熟練掌握

      熟練掌握

      了解

      熟練掌握

      了解哈希表與哈希方法

      4學時

      1學時

      1學時

      2學時

      8學時

      2學時

      2學時

      4學時

      8學時

      2學時

      2學時

      4學時

      6學時

      2學時

      2學時

      2學時

      6學時

      2學時

      2學時

      2學時

      12學時

      2學時

      2學時

      2學時

      2學時

      2學時

      2學時

      8學時

      2學時

      2學時

      2學時

      2學時

      8學時

      4學時

      2學時

      2學時

      9、排序

      12學時 插入排序

      熟練掌握基本思想

      3學時 快速排序

      了解各種內部排序方法和特點

      3學時 選擇排序

      掌握

      2學時 各種排序方法比較

      掌握

      2學時

      實驗內容 實驗目標 課時分配 算法編程實驗:

      1、用指針方式編寫程序 復習C(C++)語言指針、結構體等的用法

      2、對單鏈表進行遍歷

      鏈表的描述與操作實現(xiàn)

      3、棧及其操作

      描述方法及操作

      4、編寫串子系統(tǒng)1 串的特點及順序定長存儲、操作、查找

      5、編寫串子系統(tǒng) 2 串的特點及順序定長存儲、操作、查找

      6、編寫樹子系統(tǒng)1 二叉樹的特點及存儲方式、創(chuàng)建、顯示、遍歷等

      7、編寫樹子系統(tǒng)2 二叉樹的特點及存儲方式、創(chuàng)建、顯示、遍歷等

      8、圖子系統(tǒng)

      圖的鄰接矩陣的存儲、遍歷、廣度/深度優(yōu)先搜索

      9、查找子系統(tǒng)

      理解查找基本算法、平均查找長度、靜態(tài)、動態(tài)查找等

      五、考試范圍與題型

      1、考試范圍與分數比例

      1)緒論

      12% 2)線性表

      17% 3)棧

      7% 4)隊列

      6% 5)串

      4% 6)樹和二叉樹

      14% 7)圖

      15% 8)查找

      4% 9)排序

      21%

      2、考試題型與分數比例

      1)名詞解釋

      18% 2)判斷對錯

      16% 3)填空

      16% 4)單項選擇

      18% 5)應用

      32%

      六、教材與參考資料

      1、教材: 實用數據結構基礎(譚浩強)中國鐵道出版社

      2、參考資料: 數據結構(嚴蔚敏)清華大學出版社

      數據結構實用教程(徐孝凱)清華大學出版社

      (撰寫人:

      ,審核人: 2學時 2學時 2學時 2學時 2學時 2學時 2學時 2學時 2學時)

      第四篇:《算法與數據結構》教學大綱

      《算法與數據結構》教學大綱

      一、使用說明

      (一)課程性質

      《數據結構》是一門專業(yè)基礎課,在計算機軟件的各個領域中均會使用到數據結構的有關知識。本課程的先修課程為C程序設計或C++程序設計。

      (二)教學目的

      學會從問題入手,分析研究計算機加工的數據結構的特性,以便為應用所涉及的數據選擇適當的邏輯結構、存儲結構及其相應的操作算法,并初步掌握時間和空間分析技術。另一方面,本課程的學習過程也是進行復雜程序設計的訓練過程,要求學生會書寫符合軟件工程規(guī)范的文件,編寫的程序代碼應結構清晰、正確易讀,能上機調試并排除錯誤。

      (三)教學時數

      課堂講授每周4學時,18周,共72學時。

      (四)教學方法

      本課程將采用課堂講授及課堂討論相結合的交互式教學法,同時輔以必要的上機操作實踐。

      (五)面向專業(yè)

      計算機科學與技術專業(yè)。

      二、教學內容

      第一章 緒論

      (一)教學目的要求

      介紹數據結構的一些基本概念,算法的時間復雜度和空間復雜度的分析方法,抽象數據類型的定義和使用以及算法的描述方法。掌握數據結構的一些基本概念,掌握算法的時間復雜度和空間復雜度的分析方法,了解抽象數據類型的定義和使用,了解算法的描述方法。

      (二)教學內容

      主要內容:數據結構的一些基本概念:數據、數據元素、數據邏輯結構、數據存儲結構、數據類型、算法等。抽象數據類型。算法時間復雜度和空間復雜度的分析。

      教學重點:有關數據結構的各個名詞和術語的含義,以及語句頻度和時間復雜度、空間復雜度的估算。

      教學難點:算法時間復雜度和空間復雜度的分析。

      第一節(jié)

      一、非數值計算

      二、數據結構課程內容的歷史演變

      三、數據結構研究范圍

      第二節(jié)

      一、數據

      二、數據結構

      三、數據類型

      四、抽象數據類型

      五、多型數據類型

      第三節(jié)

      一、固有數據類型

      抽象數據類型的表示與實現(xiàn)

      基本概念和術語 什么是數據結構

      二、數據抽象

      三、抽象數據類型的描述語言

      第四節(jié)

      一、算法

      二、算法設計的要求

      三、算法效率的度量

      四、算法的存儲空間需求

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      4學時。

      第二章 線性表

      (一)教學目的與要求

      介紹線性表的基本概念和類型定義,對順序表和單鏈表的常用操作方法及其程序實現(xiàn),循環(huán)鏈表和雙向鏈表的定義和它的插入、刪除等操作方法。掌握線性表的基本概念和類型定義;熟練掌握對順序表和單鏈表的常用操作方法及其程序實現(xiàn);掌握循環(huán)鏈表和雙向鏈表的定義和它的插入、刪除等操作方法。

      (二)教學內容

      主要內容:線性表的基本概念和類型定義,線性表的順序存儲結構,線性表的鏈接存儲結構:(1)單鏈表的查找、插入和刪除;(2)循環(huán)鏈表;(3)雙向鏈表。

      教學重點:在順序表和鏈表上各種基本算法的實現(xiàn)及相關的時間性能分析。

      教學難點:用所學的基本知識設計有效算法解決與線性表相關的應用問題。鏈表要分清鏈表中指針p和結點*p之間的對應關系,區(qū)分鏈表中的頭結點、頭指針以及循環(huán)鏈表、雙向鏈表的特點等。

      第一節(jié)

      一、線性表的定義

      二、線性表的基本操作

      第二節(jié)

      一、順序表

      二、順序表上基本運算的實現(xiàn)

      三、順序表應用舉例

      第三節(jié)

      一、線性鏈表

      二、循環(huán)鏈表

      三、雙向鏈表

      四、靜態(tài)鏈表

      第四節(jié) 一、一元多項式的數學表示 二、一元多項式的計算機表示

      三、抽象數據類型:一元多項式的定義

      四、抽象數據類型:一元多項式的存儲結構

      五、抽象數據類型:一元多項式的基本操作算法實現(xiàn)

      (三)教學方法與形式

      一元多項式的表示及相加 線性表的鏈式存儲表示和實現(xiàn) 線性表的順序存儲表示和實現(xiàn)

      線性表的類型定義 算法和算法分析 課堂講授、多媒體課件。

      (四)教學時數

      8學時。

      第三章 棧和隊列

      (一)教學目的與要求

      介紹棧和隊列的定義,順序和鏈接存儲的棧和隊列的各種運算的方法及其程序實現(xiàn)。掌握棧和隊列的定義,熟練掌握順序和鏈接存儲的棧和隊列的各種運算的方法及其程序實現(xiàn)。

      (二)教學內容

      主要內容:棧的類型定義,棧的順序存儲和鏈接存儲的表示,在棧的順序存儲和鏈接存儲上進行各種棧操作的算法,棧的應用舉例,隊列的類型定義,隊列的順序存儲(循環(huán)隊)和鏈接存儲表示及各種操作的實現(xiàn)算法。

      教學重點:棧和隊列在兩種存儲結構上實現(xiàn)的基本運算。教學難點:遞歸的實現(xiàn)、循環(huán)隊列中對邊界條件的處理。

      第一節(jié)

      一、抽象數據類型棧的定義

      二、棧的表示和實現(xiàn)

      第二節(jié)

      一、數制轉換

      二、括號匹配的檢驗

      三、表達式求值

      第三節(jié)

      一、函數調用與棧

      二、遞歸調用棧的變化

      第四節(jié)

      一、抽象數據類型隊列的定義

      二、鏈隊列--隊列的鏈式表示和實現(xiàn)

      三、循環(huán)隊列--隊列的順序表示和實現(xiàn)

      第五節(jié)

      一、優(yōu)先級隊列的概念

      二、優(yōu)先級隊列的存儲表示和實現(xiàn)

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      4學時。

      第四章 串

      (一)教學目的與要求

      介紹串的基本概念和操作,串的存儲結構以及基本操作的算法實現(xiàn)。掌握串的基本概念和操作,掌握串的存儲結構以及基本操作的算法實現(xiàn)。

      (二)教學內容

      主要內容:串的類型定義,串的表示和實現(xiàn),正文模式匹配,正文編輯——串操作應用舉例串的類型定義。

      教學重點:串類型定義中各基本操作的定義以及串的實現(xiàn)方法。教學難點:利用串的基本操作來實現(xiàn)串的其它操作。

      優(yōu)先級隊列 隊列 棧與遞歸的實現(xiàn) 棧的應用舉例

      第一節(jié)

      一、串的定義

      二、串的基本操作

      第二節(jié)

      一、定長順序存儲表示

      二、堆分配存儲表示

      三、串的塊鏈存儲表示

      四、字符串操作的實現(xiàn)

      第三節(jié)

      二、模式匹配的一種改進算法

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      4學時。

      串的類型定義

      串的表示和實現(xiàn)

      字符串的模式匹配

      一、求子串位置的定位函數Index(S,T,pos)

      第五章 數組和廣義表

      (一)教學目的

      介紹數組的基本概念和基本操作的算法實現(xiàn);稀疏矩陣的定義和各種存儲結構,稀疏矩陣的轉置和相加的方法并了解其算法;廣義表的定義、存儲結構和求廣義表的長度及深度的算法,建立廣義表和輸出廣義表的方法并了解其算法。掌握數組的基本概念和基本操作的算法實現(xiàn);掌握稀疏矩陣的定義和各種存儲結構,掌握稀疏矩陣的轉置和相加的方法并了解其算法;掌握廣義表的定義、存儲結構和求廣義表的長度及深度的算法,掌握建立廣義表和輸出廣義表的方法并了解其算法。

      (二)教學內容

      主要內容:稀疏矩陣的定義、存儲和運算,廣義表的定義、存儲和運算串的類型定義。教學重點:特殊矩陣的壓縮存儲,以及稀疏矩陣的三元組順序表示。教學難點:特殊矩陣的壓縮存儲,以及稀疏矩陣的三元組順序表示。

      第一節(jié) 第二節(jié)

      一、數組的存儲方式

      二、數組元素存儲位置的計算

      三、基本操作的實現(xiàn)

      第三節(jié)

      一、特殊矩陣

      二、稀疏矩陣

      第四節(jié)

      一、廣義表的基本概念

      二、廣義表的三個重要結論

      第五節(jié)

      一、頭尾鏈表存儲表示

      二、擴展線性鏈表存儲表示

      第六節(jié)

      廣義表的遞歸算法 廣義表的存儲表示 廣義表的定義 矩陣的壓縮存儲 數組類型 數組的順序表示和實現(xiàn)

      一、求廣義表的深度

      二、復制廣義表

      三、建立廣義表的存儲結構

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      6學時。

      第六章 樹和二叉樹

      (一)教學目的與要求

      介紹樹的定義、性質、存儲結構及遍歷算法,握二叉樹的各種遍歷方法及其實現(xiàn),二叉樹的其他操作方法及實現(xiàn),樹、森林和二叉樹的轉換方法,哈夫曼樹的定義和構造哈夫曼樹的方法,哈夫曼樹編碼的方法。掌握樹的定義、性質、存儲結構及遍歷算法,熟練掌握二叉樹的各種遍歷方法及其實現(xiàn),掌握二叉樹的其他操作方法及實現(xiàn),掌握樹、森林和二叉樹的轉換方法,掌握哈夫曼樹的定義和構造哈夫曼樹的方法,了解哈夫曼樹編碼的方法。

      (二)教學內容

      主要內容:樹的定義、性質和表示方法,二叉樹的定義、性質和存儲結構,二叉樹的各種遍歷方法及實現(xiàn),建立二叉樹、輸出二叉樹、求二叉樹深度等的操作方法及實現(xiàn),樹的存儲結構,進行先根遍歷、后根遍歷和按層遍歷的方法及實現(xiàn),進行樹與二叉樹的轉換方法,哈夫曼樹的定義、構造哈夫曼樹的方法及哈夫曼編碼的方法。

      教學重點:二叉樹和樹的遍歷及其應用。

      教學難點:實現(xiàn)二叉樹和樹的各種操作的遞歸算法。

      第一節(jié)

      一、樹的定義

      二、森林的定義

      三、樹的抽象數據類型定義

      第二節(jié) 一、二叉樹的定義 二、二叉樹的性質 三、二叉樹的存儲結構

      第三節(jié)

      一、遍歷二叉樹

      二、線索二叉樹

      第四節(jié)

      一、樹的存儲結構

      二、森林與二叉樹的轉換

      三、樹和森林的遍歷

      第五節(jié)

      一、最優(yōu)二叉樹(赫夫曼樹)

      二、赫夫曼編碼

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      10學時。

      最優(yōu)樹和赫夫曼編碼

      樹和森林

      遍歷二叉樹和線索二叉樹

      二叉樹

      樹的定義和基本術語

      第七章 圖

      (一)教學目的與要求

      介紹圖的定義和術語;圖的存儲結構及深度和廣度優(yōu)先搜索方法及其實現(xiàn);圖的生成樹的概念,求圖的最小生成樹的普里姆算法和克魯斯卡爾算法并了解其實現(xiàn)算法;拓撲排序的方法并了解其實現(xiàn)算法;計算關鍵路徑的方法及其實現(xiàn)算法。掌握圖的定義和術語;熟練掌握圖的存儲結構及深度和廣度優(yōu)先搜索方法及其實現(xiàn);掌握圖的生成樹的概念,掌握求圖的最小生成樹的普里姆算法和克魯斯卡爾算法并了解其實現(xiàn)算法;掌握拓撲排序的方法并了解其實現(xiàn)算法;了解計算關鍵路徑的方法并了解其實現(xiàn)算法。

      (二)教學內容

      主要內容:圖的定義和術語,圖的鄰接矩陣、鄰接表和邊集數組表示,圖的深度和廣度優(yōu)先搜索遍歷,圖的生成樹和最小生成樹,拓撲排序。

      教學重點:圖在鄰接矩陣與鄰接表上實現(xiàn)的遍歷算法(DFS和BFS)。教學難點:基于遍歷算法的應用。

      第一節(jié)

      一、圖的定義

      二、無向圖

      三、有向圖

      四、連通圖

      五、生成樹

      第二節(jié)

      一、數組表示法

      二、鄰接表 三、十字鏈表

      四、鄰接多重表

      第三節(jié)

      一、深度優(yōu)先搜索

      二、廣度優(yōu)先搜索

      三、連通分量

      第四節(jié)

      一、Kruskal算法

      二、Prim算法

      第五節(jié)

      一、拓撲排序

      二、關鍵路徑

      第六節(jié)

      一、從某個源點到其余各項點的最短路徑

      二、每一對頂點之間的最短路徑

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      12學時。

      最短路徑 有向無環(huán)圖及其應用

      最小生成樹 圖的遍歷 圖的存儲表示 圖的定義和術語

      第八章 查找表

      (一)教學目的與要求

      介紹順序表查找和有序表查找的方法及實現(xiàn);二叉排序樹和平衡二叉樹的定義、對二叉排序樹和平衡二叉樹進行插入、刪除和查找的方法和實現(xiàn)。哈希表的定義,構造哈希函數的多種方法,以及處理沖突的方法;B樹的定義,查找、插入和刪除元素的方法。熟練掌握順序表查找和有序表查找的方法及實現(xiàn);掌握二叉排序樹和平衡二叉樹的定義、熟練掌握對二叉排序樹和平衡二叉樹進行插入、刪除和查找的方法和實現(xiàn)。掌握哈希表的定義,構造哈希函數的多種方法,以及處理沖突的方法;了解B樹的定義,查找、插入和刪除元素的方法。

      (二)教學內容

      主要內容:順序查找和二分查找,索引查找和分塊查找,散列查找,動態(tài)查找樹表。教學重點:順序查找、二分查找、二叉排序樹上查找以及散列表上查找的基本思想和算法實現(xiàn)。

      教學難點:二叉排序樹的刪除算法。

      第一節(jié)

      一、順序表的查找

      二、有序表的查找

      三、靜態(tài)樹表的查找

      四、索引順序表的查找

      第二節(jié) 一、二叉排序樹

      二、平衡二叉樹

      三、動態(tài)的m路搜索樹

      四、B樹和B+樹基本概念

      第三節(jié)

      一、什么是哈希表

      二、哈希函數的構造方法

      三、處理沖突的方法

      四、哈希表的查找及其分析

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      10學時。

      第九章 內部排序

      (一)教學目的與要求

      介紹插入排序、交換排序、選擇排序、快速排序、歸并排序、基數排序的方法及其實現(xiàn),快速排序、堆排序、二路歸并排序的方法及其實現(xiàn),各種排序方法的穩(wěn)定性、時間復雜度和空間復雜度。掌握插入排序、交換排序、選擇排序、快速排序、歸并排序、基數排序的方法及其實現(xiàn),熟練掌握快速排序、堆排序、二路歸并排序的方法及其實現(xiàn),掌握各種排序方法的穩(wěn)定性、時間復雜度和空間復雜度。

      (二)教學內容

      主要內容:排序的概念,直接插入排序,冒泡排序和快排序,直接選擇排序和堆排序,歸并排序。

      哈希表 動態(tài)查找表 靜態(tài)查找表 教學重點:插入排序(直接插入、折半插入)、交換排序(冒泡、快速排序)、選擇排序(直接選擇、堆)、2-路歸并排序。

      教學難點:快速排序partition算法的應用和堆的調整。

      第一節(jié)

      一、穩(wěn)定的排序方法

      二、內部/外部排序

      三、內部排序種類

      四、排序中的基本操作

      五、排序數據的存儲方式

      第二節(jié)

      一、直接插入排序

      二、其他插入排序

      三、希爾排序

      第三節(jié)

      一、起泡排序算法

      二、快速排序算法

      第四節(jié)

      一、簡單選擇排序

      二、樹形選擇排序

      三、堆排序

      第五節(jié) 第六節(jié)

      一、多關鍵字的排序

      二、鏈式基數排序

      第七節(jié)

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      10學時。

      第十章 文件

      (一)教學目的與要求

      介紹文件和記錄的基本概念以及基本操作。掌握文件和記錄的基本概念以及基本操作。

      (二)教學內容

      主要內容:基本概念,順序文件,索引文件,索引順序文件,散列文件,多關鍵碼文件。教學重點:各種文件的結構特點及其適用場合。教學難點:各種文件的結構特點及其適用場合。

      第一節(jié)

      一、文件及其類別

      二、記錄的邏輯結構和物理結構

      三、文件的操作

      四、文件的物理結構

      第二節(jié)

      一、順序文件的定義

      順序文件 基本概念

      各種排序方法的綜合比較

      歸并排序法 基數排序 選擇排序法 交換排序法 插入排序 排序的定義和方法

      二、順序文件的優(yōu)缺點

      第三節(jié)

      一、索引文件的定義

      二、索引文件的特點

      第四節(jié)

      一、ISAM文件

      二、VSAM文件

      第五節(jié)

      一、散列文件的定義

      二、散列文件的特點

      第六節(jié)

      一、多重表文件

      二、倒排文件

      (三)教學方法與形式

      課堂講授、多媒體課件。

      (四)教學時數

      4學時。

      三、考核方式

      本課程的考核采用閉卷考試的方式,課程的總評成績由平時成績、實驗成績和期末考試成績三部分組成,其中平時成績占總評成績的10%,實驗成績占總評成績的30%,期末考試成績占總評成績的60%。

      四、教材選用

      1、殷人昆,陶永雷,謝若陽等:《數據結構(用面向對象方法與C++語言描述)》,清華大學出版社,2007.6年第二版。

      2、嚴蔚敏,吳偉民:《數據結構(C語言版)》 及《數據結構題集(C語言版)》,清華大學出版社,2003年第一版。

      多關鍵碼文件 散列文件 ISAM文件和VSAM文件

      索引文件

      第五篇:數據結構與算法總結

      《數據結構與算法》課程學習總結報告

      100401200510計本(4)班章興春

      本學期所學習的《數據結構與算法》課程已經告一段落,就其知識點及其掌握情況、學習體會以及對該門課程的教學建議等方面進行學習總結。以便在所學習知識有更深刻的認識。

      一、《數據結構與算法》知識點:

      學習數據結構之前、一直以為數據結構是一門新的語言、后來才知道學習數據結構是為了更加高效的的組織數據、設計出良好的算法,而算法則是一個程序的靈魂。經過了一學期的數據結構了,在期末之際對其進行總結。首先,學完數據結構我們應該知道數據結構講的是什么,數據結構課程主要是研究非數值計算的研究的程序設計問題中所出現(xiàn)的計算機處理對象以及它們之間關系和操作的學科。

      第一章主要介紹了相關概念,如數據、數據元素、數據類型以及數據結構的定義。其中,數據結構包括邏輯結構、存儲結構和運算集合。邏輯結構分為四類:集合型、線性、樹形和圖形結構,數據元素的存儲結構分為:順序存儲、鏈接存儲、索引存儲和散列存儲四類。最后著重介紹算法性能分析,包括算法的時間性能分析以及算法的空間性能分析。

      第二章具體地介紹了順序表的定義、特點及其主要操作,如查找、插入和刪除的實現(xiàn)。需要掌握對它們的性能估計。包括查找算法的平均查找長度,插入與刪除算法中的對象平均移動次數。

      鏈表中數據元素的存儲不一定是連續(xù)的,還可以占用任意的、不連續(xù)的物理存儲區(qū)域。與順序表相比,鏈表的插入、刪除不需要移動元素,給算法的效率帶來較大的提高。鏈表這一章中介紹了鏈表的節(jié)點結構、靜態(tài)與動態(tài)鏈表的概念、鏈表的基本運算(如求表長、插入、查找、刪除等)、單鏈表的建立(頭插法和尾插法)以及雙向循環(huán)鏈表的定義、結構、功能和基本算法。

      第三章介紹了堆棧與隊列這兩種運算受限制的線性結構。其基本運算方法與順序表和鏈表運算方法基本相同,不同的是堆棧須遵循“先進后出”的規(guī)則,對堆棧的操作只能在棧頂進行;而隊列要遵循“先進先出”的規(guī)則,教材中列出了兩種結構的相應算法,如入棧、出棧、入隊、出隊等。在介紹隊列時,提出了循環(huán)隊列的概念,以避免“假溢出”的現(xiàn)象。算法上要求掌握進棧、退棧、取棧頂元素、判??蘸兄每諚5任宸N操作及掌握使用元素個數計數器及少用一個元素空間來區(qū)分隊列空、隊列滿的方法。

      第四章串和數組中,我們知道串是一種特殊的線性表,是由零個或多個任意字符組成的字符序列。串的儲存結構分為緊縮模式和非緊縮模式。

      基本運算需掌握求串長、串賦值、連接操作、求子串、串比較、串定位、串插入、串刪除、串替換等。

      第五章二叉樹的知識是重點內容。在介紹有關概念時,提到了二叉樹的性質以及兩種特殊的二叉樹:完全二叉樹和滿二叉樹。接著介紹二叉樹的順序存儲和鏈接存儲以及生成算法。重點介紹二叉樹的遍歷算法(遞歸算法、先序、中序和后序遍歷非遞歸算法)和線索二叉樹。二叉樹的應用:基本算法、哈弗曼樹、二叉排序樹和堆排序。

      樹與二叉樹是不同的概念。教材介紹了樹和森林的概念、遍歷和存儲結構,還有樹、森林和二叉樹的相互關系,樹或森林怎樣轉化成二叉樹,二叉樹又如何轉換為樹和森林等算法。

      第六章介紹了圖的概念及其應用,圖的存儲結構的知識點有:鄰接矩陣、鄰接表、逆鄰接表、十字鏈表和鄰接多重表。圖的遍歷包括圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷。其余知識點有:有向圖、連通圖、生成樹和森林、最短路徑問題和有向無環(huán)圖及其應用。有向無環(huán)圖重點理解AOV網和拓撲排序及其算法。

      最后兩章集體說明了查找和排序算法,查找教材上介紹了靜態(tài)查找表和哈希查找表,靜態(tài)查找表中介紹了順序查找、折半查找以及分塊查找。哈希法中,學習要點包括哈希函數的比較;解決地址沖突的線性探查法的運用,平均探查次數;解決地址沖突的二次哈希法的運用。

      排序是使用最頻繁的一類算法,可分為內部排序和外部排序。主要需要理解排序的基本概念,在算法上、需要掌握插入排序(包括直接插入排序算法、折半插入排序算法),交換排序(包括冒泡排序算法、快速排序遞歸算法),選擇排序(包括直接選擇排序算法、堆排序算法)等。

      二、對各知識點的掌握情況

      總體來看,對教材中的知識點理解較為完善,但各個章節(jié)均出現(xiàn)有個別知識點較為陌生的現(xiàn)象?,F(xiàn)將各個章節(jié)出現(xiàn)的知識點理解情況列舉如下。

      第一章中我對數據和數據結構的概念理解較為透徹,熟悉數據結構的邏輯結構和存儲結構。而對算法的時間、空間性能分析較為模糊,尤其是空間性能分析需要加強。

      第二章,順序表的概念、生成算法理解較為清晰,并且熟悉簡單順序查找和二分查找,對分塊查找較為含糊;排序問題中,由于冒泡排序在大一C語言課上已經學習過,再來學習感覺很輕松。對插入排序和選擇排序理解良好,但是,在實際運用中仍然出現(xiàn)明顯不熟練的現(xiàn)象。由于在歸并排序學習中感覺較吃力,現(xiàn)在對這種排序方法仍然非常模糊,所以需要花較多的時間來補習。此外串的模式匹配也是較難理解的一個地方。

      鏈表這一章中,除對雙向循環(huán)鏈表這一知識點理解困難之外,其他的知識點像單鏈表的建立和基本算法等都較為熟悉。

      接下來的有關堆棧以及隊列的知識點比較少,除有關算法較為特殊以外,其余算法都是先前學過的順序表和鏈表的知識,加上思想上較為重視,因此這部分內容是我對全書掌握最好的一部分。不足之處仍然表現(xiàn)在算法的性能分析上。

      在學習第六章時感覺較為吃力的部分在于矩陣的應用上,尤其對矩陣轉置算法的C語言描述不太理解。稀疏矩陣相加算法中,用三元組表實現(xiàn)比較容易理解,對十字鏈表進行矩陣相加的方法較為陌生。

      第七章是全書的重點,卻也有一些內容沒有完全理解。在第一節(jié)基本概念中,二叉樹的性質容易懂卻很難記憶。對二叉樹的存儲結構和遍歷算法這部分內容掌握較好,能夠熟練運用,而對于二叉樹應用中的哈弗曼樹卻比較陌生。

      第八章內容較少,牽涉到所學的隊列的有關內容,總體來說理解上沒有什么困難,問題依舊出現(xiàn)在算法的性能分析上。

      散列結構這一章理解比較完善的知識點有:基本概念和存儲結構。散列函數中直接定址法和除留余數法學得比較扎實,對數字分析法等方法則感覺較為陌生。對兩種沖突處理的算法思想的理解良好,問題在于用C語言描述上。

      最后一章,圖及其應用中,圖的定義、基本運算如圖的生成等起初理解有困難,但隨著學習深入,對它的概念也逐步明朗起來。鄰接矩陣、鄰接表和逆鄰接表掌握較好,而對十字鏈表和鄰接多重表則較為陌生。感覺理解較為吃力的內容還有圖的遍歷(包括深度和廣度優(yōu)先遍歷),最小生成樹問題也是比較陌生的知識點。最短路徑和AOV網學習起來感覺比較輕松,而對于C語言描述卻又不大明白。

      由于平時上機練習的少,對于教材中很多算法都掌握的不是很熟悉、不過這些都是可以彌補的,我會在剩下的時間中不斷練習書上給出的算法和練習,正如教材上說的,學習數據結構,僅從書本上學習是不夠的,必須經過大量的程序設計實踐,在實踐中體會構造性思維方法,掌握數據組織與程序設計技術。

      三、學習體會:

      多做實驗!這個就沒有太多理由了,我一直覺得編程是一門熟練科學,多編程,水平肯定會提高,最重要的是能夠養(yǎng)成一種感覺,就是對程序對算法的敏感,為什么那些牛人看一個算法一下子就看懂了?而自己要看很久才能弄懂,而且弄懂了過了一陣子又忘記了?其實這個是因為牛人們以前看的程序很多,編得也很多,所以他們有了那種感覺,所以我覺得大家應該多看程序,多寫程序,培養(yǎng)自己的感覺。

      復習和考試的技巧,我想大家應該都有這樣的感覺,就是覺得自己什么都掌握了,但是在考試的時候就是會犯暈,有時候一出考場就知道錯在哪個了,然后考完以后一對答案,發(fā)現(xiàn)其實考得很簡單,應該都是自己會做的,這個就是與自己的復習和考試的技巧有關系了。

      首先就是復習,前面已經說過其實我們學的算法也就是幾十個,那么我們的任務也就是理解這幾十個算法,復習也就是要加深你的理解。如何理解算法,然后理解到什么程度呢? 是能默出整個算法嗎?其實不是這樣的,數據結構的考試有它的特點,考過程考試了,大家應該都發(fā)現(xiàn)數據結構其實不要求你把整個算法背出來,它注重考察你的理解,那么怎么考察呢?其實也就是兩種方式吧,一種就是用實例,就是給你一個例子,要你用某個算法運行出結果,我想這個期末考試的時候仍然會有很多這樣的題目,比如排序那塊就很好出這樣的題目,要復習這種題目我覺得很簡單,就是每個算法都自己用例子去實踐一下,以不變應萬變,我期中復習的時候就是這樣去做的,而且考試之前我就覺得那個并查集的題目就很有可能會考,于是就自己出了幾個例子,做了一下。另外一種考察方式就是算法填空和算法改錯,可能有一些同學覺得這種題目很難,其實我們首先可以確定這兩種題目肯定是與書上算法有關系的,只要理解了書上的算法就可以了,有人覺得看完書以后什么都懂了,而且要默也默得出來,其實不是這樣的,算法改錯和填空主要是考察的細微處,雖然你覺得你默得出來,那是能夠默出算法的主體部分,很多細微的地方你就會很容易忽略。我想大家考過期中考以后應該都有這種感覺吧?那要怎樣解決這種問題呢? 我覺得有兩種方法,一種就是自己去編程實現(xiàn),這種方法比較有意義,還能夠提高編程水平,另外一種就是用實例分析算法的每句話,我認為這種方法是最有效的。

      然后還有一種題目,就是最后的寫算法的題目,我覺得這種題目還是很好解決的,只要是能夠自己做出作業(yè)的,基本上都會很容易做出來,這也是為什么我前面覺得平時做作業(yè)應該自己獨立思考的原因,同時做這種題目千萬要小心,尤其是題目簡單的時候,那肯定會有一些小地方要考慮清楚,一不小心就會被扣掉很多分,這樣很不值。

      我覺得考試的時候沒有太多要講的,只要復習好了,考試的時候細心一點就可以了,然后就是做一個題目開始就要盡量保證正確,如果覺得留在那里等后面做完了再來檢查,這樣錯誤還是很有可能檢查不出來,我期中考試的時候就基本上沒有檢查,因為我做每個題目都是確保正確,用的時間也挺多的,然后也覺得沒有檢查的必要了。

      三、對《數據結構與算法》課程教學的建議

      1、建議在上課過程中加大隨堂練習的分量,以便學生能當堂消化課堂上學習的知識,也便于及時了解學生對知識點的掌握情況,同時有助于學生保持良好的精神狀態(tài)。

      2、建議在課時允許的情況下,增加習題課的分量,通過課堂的習題講解,加深對知識點的掌握,同時對各知識點的運用有一個更為直觀和具體的認識。

      3、要更加重視實驗的重要性。

      以上便是我對《數據結構與算法》這門課的學習總結,我會抓緊時間將沒有吃透的知識點補齊。今后我仍然會繼續(xù)學習,克服學習中遇到的難關,在打牢基礎的前提下向更深入的層面邁進!

      下載數據結構與算法教學大綱word格式文檔
      下載數據結構與算法教學大綱.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現(xiàn)有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯(lián)系你,一經查實,本站將立刻刪除涉嫌侵權內容。

      相關范文推薦

        數據結構與算法總結

        《數據結構與算法》課程學習總結報告 070401301507計本(3)班張浩 本學期開設的《數據結構與算法》課程已經告一段落,現(xiàn)就其知識點及其掌握情況、學習體會以及對該門課程的教學......

        算法與數據結構總結

        算法與數據結構總結 算法與數據結構這一門課程,就是描述了數據的邏輯結構,數據的存儲結構,以及數據的運算集合在計算機中的運用和體現(xiàn)。數據的邏輯結構就是數據與數據之間的邏......

        算法與數據結構實驗

        金陵科技學院實驗報告 學 生 實 驗 報 告 冊 課程名稱: 學生學號: 所屬院部: (理工類) 算法與數據結構 專業(yè)班級: 13網絡工程 1305106009 學生姓名: 陳韜 網絡與通信工程學院 指......

        數據結構算法設計與分析

        數據結構算法設計與分析、計算機網絡、計算機組成原理、操作系統(tǒng)原理、編譯原理、數據庫原理及應用、軟件工程、軟件測試等計算機基礎理論課程; 網頁制作、程序設計Java、JSP......

        數據結構與算法課程總結[模版]

        數據結構與算法課程學習總結報告 11計本一班 許雪松 1104013018 數據結構與算法是計算機程序設計的重要理論技術基礎,它不僅是計算機科學的核心課程,而且也已經成為其他理工專......

        《數據結構與算法課程設計》任務書2014

        2014/2015學年第一學期 《數據結構與算法課程設計》任務書 一、課程設計目的 數據結構與算法課程設計是《數據結構與算法》課程教學必不可缺的一個重要環(huán)節(jié),它可加深學生對該......

        算法與數據結構實驗指導書

        北 京 郵 電 大 學 計 算 機 科 學 與 技 術 學 院 算 法 與 數 據 結 構 實 驗 指 導 書 楊俊、徐塞虹、漆濤 編著 2006年9月 1 算法與數據結構 實驗指導書 目錄......

        算法與數據結構實驗冊

        金陵科技學院實驗報告 學 生 實 驗 報 告 冊 課程名稱: 學生學號: 所屬院部: (理工類) 算法與數據結構 專業(yè)班級: 14計單(2) 1413201007 學生姓名: 毛卓 計算機工程學院 指導教師:......