課程性質: 非獨立設課
課程屬性: 專業實驗課
學時學分: 總學時 72 實驗學時 18 實驗學分不單獨計學分
開出時間: 1 年級 2 學期
適用專業: 電子資訊科學與技術
綜合性、設計性實驗專案數: 2 個 8 學時
一、 課程簡介
「資料結構」課程的內容是研究資料的組織、儲存、處理的基本方法,是一門理論和實踐緊密結合的基礎課,要求學生能熟練使用嚴密的演算法語言描述基本的資料結構問題並能用高階語言實現演算法。
二、實驗目的及要求
本課程內容體系結構分為概念表述、構建資料模型、設計演算法三個層面,其中實驗課屬於第三個層面,其教學目標是培養學生運用理論解決問題的能力,體現資訊結構轉換的三個重要階段「數學模型→抽象數學模型→資料結構→可執行程式」中的最後乙個階段,以培養資料抽象能力、實際動手能力為重點,既是學生驗證和運用所學理論知識的關鍵步驟,也是檢驗學生是否掌握所學知識的乙個重要環節。
三、實驗方式及要求
實驗主要步驟:
1.問題分析和任務的定義
明確問題要求做什麼,限制做什麼(本步強調做什麼,而不是怎麼做)。對問題的描述應避開演算法和所涉及的資料型別,而是所完成的任務做出明確的回答。如輸入資料的型別、值的範圍以及輸入的形式;輸出資料的型別、值得範圍及輸出的形式;這步還應該為除錯程式準備好測試資料,包括合法的輸入資料和非法形式的輸入資料。
2. 資料型別和系統設計
在設計這一步驟中分為邏輯設計和詳細設計兩步實現。邏輯設計指的是,為問題的描述中涉及的操作物件定義相應的資料型別,並按照以資料結構為中心的原則劃分模組,定義主模組和各抽象資料型別;詳細設計則為定義相應的儲存結構並寫出各函式的偽碼演算法。在這個過程中,要綜合考慮系統的功能,使得系統結構清晰、合理、簡單和易於除錯,抽象資料型別的實現盡可能做到資料的封裝,基本操作的規格說明盡可能的明確和具體。
作為邏輯設計的結果。應寫出每個抽象資料型別的定義(包括資料結構的描述和每個基本操作的規格說明),各個主要模組的演算法,並畫出模組之間的呼叫關係圖。詳細設計的結果是對資料結構和基本操作的規格說明做出進一步的求精,寫出資料儲存結構的型別定義,按照演算法書寫規範用類c語言寫出函式形式的演算法框架。
3. 編碼實現和靜態檢查
4. 上機準備和上機除錯
5. 總結和整理實習報告
要求學生獨立完成每個實驗,教師檢查實驗現象和實驗結果。實驗**現的問題,學生應自己解決,如果解決不了,可以在教師指導下加以解決。每完成乙個實驗,寫乙份實驗報告。
四、考核方法
主要從以下方面評定學生實驗成績,佔平時分70%。
五、主要儀器裝置
pc機,turbo c或wintc軟體
六、配套教材或指導書
配套教材: 《資料結構(c語言版)》,嚴蔚敏、吳偉民編著,清華大學出版社,2023年5月
實驗指導書: 《資料結構(c語言版)》實驗指導書,自編,2023年
七、實驗專案設定表
每次實驗後均要求學生寫出實驗報告,實驗報告內容包括:題目、題意解釋、題意分析、設計方案、流程描述、源程式清單、程式執行結果、程式存在問題和改進意見等。由於課程教學要求需完成以上的實驗專案,所以表中的實驗學時數不足以讓學生當場完成各個實驗專案,特別是設計性實驗。
主要依靠學生利用課餘時間自行完成,課程內時間著重用於針對實驗內容進行輔導和答疑。可以在期中和期末集中收兩次實驗報告,了解學生對知識點的掌握情況以及存在的問題。
八、綜合性、設計性實驗簡介
專案一:字串回文的判斷
1、指導思想
棧和佇列是重要和常用的資料結構,要求學生靈活運用資料結構的知識,體會到可以通過所學知識構造新的功能,培養學生解決問題的能力。
「回文」英語叫做palindrome,是指乙個單詞或句子,順讀倒讀都可成立的,英語單字中順讀倒讀仍是同一字的有:civic,deed,did,gag,level,madam,noon,peep,refer,rotator。回文句有madam, i'm adam.
was it a car or a cat i saw?設計演算法並程式設計實現自動判斷使用者輸入的字串是否回文。
2、實驗目的及要求
(1)利用順序儲存或鏈式儲存實現棧和佇列及其基本操作;
(2)自動判斷使用者輸入的字串是否回文;
(3)選作:對於回文句應考慮自動去掉無用的字元和更換大小寫。若是回文,輸出倒讀結果。
3、涉及的內容或知識點
棧和佇列的特點;棧和佇列的儲存方法;棧的常用操作(構造、銷毀、入棧、出棧、讀棧、判斷棧空或滿);佇列的常用操作(構造、銷毀、入佇列、出佇列、判斷佇列空或滿);字元處理(判斷是否有效字元,大小寫變換)。
4、採用的教學方法和手段
教師介紹設計思路,學生獨立完成。實驗報告包括:問題解決方案(資料結構定義、功能設計、介面設計),程式執行測試結果等。
專案二:判別表示式中的括號是否匹配
1、指導思想
棧是重要和常用的資料結構,要求學生靈活運用資料結構的知識,體會到可以通過所學知識構造新的功能,培養學生解決問題的能力。表示式運算是計算機重要應用之一,而判斷表示式中的括號是否匹配是表示式運算的基礎。設計程式自動判斷使用者輸入的表示式中的括號是否匹配。
2、實驗目的及要求
(1)利用順序儲存或鏈式儲存實現棧及其基本操作;
(2)自動判斷使用者輸入的的表示式中的括號是否匹配;
(3)選作:輸出未匹配括號的位置資訊。
3、涉及的內容或知識點
棧的特點;棧的儲存方法;棧的常用操作(構造、銷毀、入棧、出棧、讀棧、判斷棧空或滿)。
4、採用的教學方法和手段
教材中簡要介紹了設計思路,學生獨立完成。實驗報告包括:問題解決方案(資料結構定義、功能設計、介面設計),程式執行測試結果等。
專案三:樹及其操作
1、指導思想
樹是重要和常用的非線性資料結構。樹的遍歷實際上是對非線性結構進行線性化,對樹的其他操作涉及了多個知識點,要求學生靈活運用資料結構的知識,體會到可以通過所學知識構造新的功能,培養學生解決問題的能力。
2、實驗目的及要求
(1)設計二叉樹的表達方法;
(2)輸入一棵二叉樹:要求該樹至少包含五個結點,帶有乙個兒子、兩個兒子的結點;
(3)編寫樹的先序、中序、後序遍歷的函式,看輸出結果,確認樹的結構和自己輸入的一致;
(4)在上一步正確的基礎上,運用佇列結構,對樹進行層次遍歷;
(5)統計並輸出樹的結點個數、葉片個數;
(6)選作:對調二叉樹的左右孩子;計算樹的高度;將遍歷的遞迴演算法改為非遞迴形式。
3、涉及的內容或知識點
樹的非順序儲存結構;先序、中序、後序遍歷,統計葉片個數,計算樹的高度等中涉及遞迴程式設計;層次遍歷中涉及佇列。
4、採用的教學方法和手段
教師介紹設計思路,學生獨立完成。實驗報告包括:問題解決方案(資料結構定義、功能設計、介面設計),程式執行測試結果等。
資料結構 實驗教學大綱
課程 4111201 課程名稱 資料結構 英文名稱 data structure 實驗指導書 資料結構 一 學時 實驗時數 18 二 實驗目的 1 驗證和鞏固教材中的基本知識。2 運用課程中的基本知識和方法實現求解給定問題的演算法。3 綜合運用課程中的知識和方法,對給定問題,建立準確的問題模型,設計...
資料結構實驗教學大綱
data structure 一 課程說明 課程編碼 24300110 課程總學時 理論總學時 實踐總學時 54 44 10 周學時3 學分3 開課學期5。1 課程性質 專業選修課。2 適用專業與學時分配 教育技術學專業,本科三年級學生。教學內容與時間安排表 3 課程教學目的與要求 通過本課程的學習...
資料結構實驗教學大綱
適用專業 軟體工程 本科 實驗學時 36 一 適用範圍 大綱適用於軟體工程本科教學使用。二 課程名稱 資料結構 三 實驗教學目的和要求 資料結構是電腦科學的演算法理論基礎和軟體設計的技術基礎,是計算機專業的核心課程。本課程實驗採用實驗教學和學生實驗相結合方式,使學生掌握資料結構的基本原理和程式設計方...