![](http://seoweb.715083.com/zuowen/img/top_icon.png)
- 時間:2023-11-19 03:09:30
- 小編:ZTFB
- 文件格式 DOC
![](https://seoweb.715083.com/zuowen/img/sbssx.png)
![](http://seoweb.715083.com/zuowen/img/about_i1.png)
![](http://seoweb.715083.com/zuowen/img/about_i2.png)
報告的撰寫需要收集和整理大量的素材和資料,確保準確性和可信度。報告的篇幅應該適中,盡量保持簡潔,避免重復和贅述。閱讀報告范文可以幫助我們拓寬思路,增加創(chuàng)新和思考的角度。
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇一
1004012033陳孝婕10計本3“數(shù)據(jù)結(jié)構(gòu)與算法”這門課程對于計算機科學與技術(shù)系的學生來說是非常重要的課程。這門課程主要包括十個章節(jié)。
一.每章主要知識點總結(jié)和個人掌握情況。
第一章主要要求學生掌握數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法及算法分析等基本概念和基礎知識。另外,第一章結(jié)合課程學習要求,復習和掌握算法描述工具--c語言中的指針類型與指針變量、結(jié)構(gòu)類型與結(jié)構(gòu)變量、函數(shù)與參數(shù)、遞歸定義和遞歸函數(shù)、動態(tài)存儲分配、文件操作、程序測試和測試集、測試數(shù)據(jù)的設計和程序調(diào)試等問題。
從這一章中我不僅學到了數(shù)據(jù)結(jié)構(gòu)的基本概念和基礎知識,了解到什么是數(shù)據(jù)結(jié)構(gòu),我們?yōu)槭裁匆獙W習數(shù)據(jù)結(jié)構(gòu)這門課程。而且復習了大一下學期所學的c語言程序課程設計中的算基本法語句。有利于數(shù)據(jù)結(jié)構(gòu)與算法后面課程的學習。
第二章主要學習順序表(包括順序串)數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本算法及相關(guān)應用。知識點包括順序表的概念、數(shù)據(jù)結(jié)構(gòu)定義、數(shù)據(jù)類型描述、基本算法的實現(xiàn)及其性能的分析等知識;還有“查找”和“排序”的概念,“查找”包括3種查找方式:簡單順序查找、二分查找、分塊查找;“排序”包括直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序和歸并排序(重點為二路歸并排序)6種排序方式;掌握應用順序表來進行查找和排序的各類算法以及不同的查找和排序算法間的性能差異。在此基礎上,理解順序串的相關(guān)應用。
從這一章中我學習到各種不同的查找方法和排序方式,其中二分查找作為重點查找方法我進行了重點學習,熟悉并熟練地運用二分查找并且了解到各種排序方法適合于不同的順序表。對于順序串的學習,我主要掌握了字符串的基本運算,包括:求串長strlen(s)、連接stract(st1,st2)、求子串substr(s,i,j)、比較串的大小strcmp(s,t)、插入insert(s1,i,s2)、刪除delete(s,i,j)、子串定位index(s1,s2)、置換(replace(s1,i,j,s2)、replace(s,t,v)兩種)。
第三章主要學習鏈表(單聊表、循環(huán)鏈表)的概念、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型描述、基本算法以及鏈表相關(guān)應用。需要掌握各種鏈表的概念、數(shù)據(jù)結(jié)構(gòu)定義、基本算法實現(xiàn)以及算法的性能分析等知識,掌握鏈表的相關(guān)應用方法,在此基礎上掌握鏈串的相關(guān)知識。
通過這一章我學習了另一種數(shù)據(jù)結(jié)構(gòu)——鏈表,在邏輯結(jié)構(gòu)上,鏈表與順序表一樣,也是線性邏輯結(jié)構(gòu);單鏈表借助“地址”的概念,使用了鏈式存儲結(jié)構(gòu),產(chǎn)生了一種新的數(shù)據(jù)結(jié)構(gòu)——鏈表,鏈表的基本操作是地址運算,在此基礎上構(gòu)成的鏈表基本算法的特點也就不同,從鏈表算法的功能看,鏈表的基本運算與順序表基本相同,但實現(xiàn)方法和過程與順序表是不同的,鏈表可分為靜態(tài)鏈表和動態(tài)鏈表兩種。這一章我學習到的實際應用是鏈表的創(chuàng)建、插入和刪除等基本操作。循環(huán)鏈表的建立和查詢方法。
第四章主要知識點是在兩種不同的存儲結(jié)構(gòu)下設計的堆棧,即順序棧和鏈棧。主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和基本運算算法及其性能分析。通過對本章的學習,要求掌握順序棧及鏈棧的數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析等知識。在此基礎上,了解堆棧的相關(guān)應用,掌握應用堆棧解決實際問題的思想及方法。
通過對這一章的學習,我了解了堆棧的概念,堆棧的原理、創(chuàng)建方法以及使用方式?!昂筮M先出”是其基本原則。利用堆??梢暂p松方便的解決對稱問題以及括號匹配等問題。堆棧與順序表、鏈表不同的是,堆棧只能對一端的數(shù)據(jù)元素進行操作,即只在棧頂進行元素的插入和刪除。掌握順序棧和鏈表的存儲結(jié)構(gòu)是學習堆棧的要素之一。堆棧是一類常用的數(shù)據(jù)結(jié)構(gòu),被廣泛應用于各種程序設計中。
第五章的重點知識是在順序存儲和鏈接存儲下的兩種隊列——順序(循環(huán))隊列和鏈隊。
列的數(shù)據(jù)結(jié)構(gòu)、基本運算及其性能分析以及應用。通過本章的學習,要求掌握順序隊列(重點是循環(huán)隊列)及鏈隊列的概念、數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析等知識。在此基礎上,了解隊列的相關(guān)應用,掌握應用隊列來解決實際問題的思想及方法。
通過這一章的學習,我掌握了隊列的定義,概念,創(chuàng)建以及“對頭刪除”,“隊尾插入”的原則。重點了解了判斷循環(huán)隊列空和滿的判斷條件。同堆棧一樣,隊列也是一種具有線性邏輯結(jié)構(gòu)、運算受限制的數(shù)據(jù)結(jié)構(gòu)。與堆棧只在一端(棧頂)進行元素的插入和刪除運算不同的是,隊列是在對頭進行插入,而在隊尾完成數(shù)據(jù)元素的刪除,所以隊列的算法和適用的應用問題與堆棧有很大的區(qū)別。隊列作為一類常用的數(shù)據(jù)結(jié)構(gòu),被廣泛應用于各種程序設計中。
第六章主要學習數(shù)組、系數(shù)矩陣和廣義表的基本概念、集中特殊矩陣的存儲結(jié)構(gòu)及基本運算,在此基礎上學習特殊矩陣的計算算法與廣義表應用等相關(guān)問題。通過本章的學習,要求掌握特殊矩陣的壓縮存儲結(jié)構(gòu),在該存儲結(jié)構(gòu)下元素的定位方法,理解稀疏矩陣的計算和廣義表的存儲結(jié)構(gòu)及其基本運算。了解矩陣與廣義表的相關(guān)應用。
通過這章的學習和前幾章的比較,我了解到前幾章的線性結(jié)構(gòu)中的數(shù)據(jù)元素都是非結(jié)構(gòu)的原子類型,即每一個元素都是不可再分解的。本章討論的數(shù)組和廣義表等數(shù)據(jù)結(jié)構(gòu)可以看成是在前幾章線性結(jié)構(gòu)基礎上的一個擴展:組成該數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)元素本身也是一個數(shù)據(jù)結(jié)構(gòu)。矩陣計算應該數(shù)值計算方面的問題,由于矩陣和數(shù)組的關(guān)系以及特殊矩陣存儲結(jié)構(gòu)的復雜性,進而使得特殊矩陣的存儲結(jié)構(gòu)和算法也表現(xiàn)出其特殊性,所以數(shù)據(jù)機構(gòu)課程應該解決其計算問題。
第七章的學習重點是二叉樹的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和各種基本算法,在此基礎上介紹二叉樹的一些應用問題。通過本章的學習,我掌握了二叉樹概念及其性質(zhì)、二叉樹的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)等知識,掌握二叉樹的建立、遍歷、線索化等基本概念和算法及性能分析,能熟練應用二叉樹這章結(jié)構(gòu)來解決一些實際問題,如哈夫曼樹及哈夫曼編碼、查找與排序(二叉樹排序)等問題。了解堆棧排序及其算法等知識。二叉樹是非線性數(shù)據(jù)結(jié)構(gòu),是樹形結(jié)構(gòu)的一種特殊形式。在現(xiàn)實生活有許多數(shù)據(jù)關(guān)系可抽象為樹或二叉樹的形式。本章中的二叉樹的概念及其性質(zhì)、二叉排序樹、存儲結(jié)構(gòu)、遍線索(化)、基本算法為重點內(nèi)容,二叉排序樹的應用為難點內(nèi)容。
第八章的學習重點是樹和森林的數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析,樹和森林與二叉樹間的轉(zhuǎn)化算法等,在此基礎上介紹樹的應用——b-樹。通過本章的學習,我掌握了樹和森林的概念和性質(zhì)、數(shù)據(jù)結(jié)構(gòu)、樹的基本算法及性能分析、樹與二叉樹間的轉(zhuǎn)換及其算法,并能應用b-樹來實現(xiàn)數(shù)據(jù)元素的動態(tài)查找。舒適一種非線性結(jié)構(gòu),它在二叉樹的基礎上做了更為一般化的擴展,而森林是樹的集合。在樹結(jié)構(gòu)中,每一個元素最多只有一個前驅(qū),但可能有多個后繼?,F(xiàn)實生活中的家族關(guān)系、單位的組成結(jié)構(gòu)等,均可抽象為樹的形式。
第九章學習重點是散列結(jié)構(gòu)的相關(guān)知識,學習常用的散列函數(shù)和沖突處理方法,散列表的常用算法及其性能分析,通過本章的學習,我掌握了散列結(jié)構(gòu)和散列函數(shù)的相關(guān)概念,掌握散列結(jié)構(gòu)的存儲(散列表)的相關(guān)概念,要求掌握散列沖突處理方法(散列法)的相關(guān)知識,并能靈活運用散列法解決應用問題。
散列結(jié)構(gòu)是使用散列函數(shù)建立數(shù)據(jù)結(jié)點關(guān)鍵字與存儲地址之間的對應關(guān)系并提供多種當數(shù)據(jù)節(jié)點存儲地址發(fā)生“沖突”時的處理方法而建立的一種數(shù)據(jù)結(jié)構(gòu)。散列結(jié)構(gòu)的查找等運算效率是很高的,本章中的散列函數(shù)、散列結(jié)構(gòu)、散列表、散列法的基本概念和基本算法是重點,線性探測散列算法、鏈地址法散列算法和散列法的應用是難點。
第十章的學習重點是圖的定義及性質(zhì),圖的四種存儲結(jié)構(gòu),圖的兩種遍歷算法以及圖的典型應用,包括最小生成樹、最短路徑、拓撲排序和關(guān)鍵路徑等。通過本章學習,我掌握了圖的概念和基本性質(zhì),圖的存儲結(jié)構(gòu)(鄰接矩陣和鄰接表)及其基本算法、圖的遍歷及算法、圖的最小生成樹普利姆算法或者克魯斯卡爾算法、圖的最短路徑迪杰斯特拉算法和弗洛伊德算法、有向無環(huán)圖拓撲排序算法。了解了圖的逆鄰接表、十字鏈表、鄰接多重表存儲結(jié)構(gòu)及其基本算法、關(guān)鍵路徑求解算法,并能靈活運用圖的不同的數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復雜的應用問題。
二.課程學習體會。
在學習開始的時候,老師就明確提出它不是一種計算機語言,不會介紹c語言的變成語言,而是通過學習可以設計出良好的算法,高效地組織數(shù)據(jù)。一個程序無論采用何種語言,其基本算法思想不會改變。聯(lián)系到在大一和大二上學期學習的c和c++語言,我深刻認識到了這一點?!败浖_發(fā)好比寫作文,計算機語言提供了許多華麗的辭藻,而數(shù)據(jù)結(jié)構(gòu)則考慮如何將這些辭藻組織成一篇優(yōu)秀的文章來。”在學習這門課中,要熟悉對算法思想的一些描述手段,包括文字描述、圖形描述和計算機語言描述等。因此,計算機語言基礎是必須的,因為它提供了一種重要的算法思想描述手段——機器可識別的描述。
這門課結(jié)束之后,我總結(jié)了學習中遇到的一些問題,最為突出的,書本上的知識與老師的講解都比較容易理解,但是當自己采用剛學的知識點編寫程序時卻感到十分棘手,有時表現(xiàn)在想不到適合題意的算法,有時表現(xiàn)在算法想出來后,只能將書本上原有的程序段謄寫到自己的程序中再加以必要的連接以完成程序的編寫。針對這一情況,我會嚴格要求自己,熟練掌握算法思想,盡量獨立完成程序的編寫與修改工作,只有這樣,才能夠提高運用知識,解決問題的能力。
1、建議在上課過程中加大隨堂練習的分量,以便學生能當堂消化課堂上學習的知識,也便于及時了解學生對知識點的掌握情況,同時有助于學生上課積極思考,不會開小差。
2、建議在課時允許的情況下,增加習題課的分量,通過課堂的習題講解,加深對知識點的掌握,同時對各知識點的運用有一個更為直觀和具體的認識。
以上便是我對《數(shù)據(jù)結(jié)構(gòu)與算法》這門課的學習總結(jié),我會抓緊時間將沒有吃透的知識點補齊。今后我仍然會繼續(xù)學習,克服學習中遇到的難關(guān),在打牢基礎的前提下向更深入的層面邁進!
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇二
課程名稱:
學生學號:
所屬院部:
(理工類)。
學生姓名:
指導教師:——20學年第學期。
金陵科技學院教務處制。
實驗報告書寫要求。
實驗報告原則上要求學生手寫,要求書寫工整。若因課程特點需打印的,要遵照以下字體、字號、間距等的具體要求。紙張一律采用a4的紙張。
實驗報告書寫說明。
實驗報告中一至四項內(nèi)容為必填項,包括實驗目的和要求;實驗儀器和設備;實驗內(nèi)容與過程;實驗結(jié)果與分析。各院部可根據(jù)學科特點和實驗具體要求增加項目。
填寫注意事項。
(1)細致觀察,及時、準確、如實記錄。(2)準確說明,層次清晰。
(3)盡量采用專用術(shù)語來說明事物。
(4)外文、符號、公式要準確,應使用統(tǒng)一規(guī)定的名詞和符號。(5)應獨立完成實驗報告的書寫,嚴禁抄襲、復印,一經(jīng)發(fā)現(xiàn),以零分論處。
實驗報告批改說明。
實驗報告的批改要及時、認真、仔細,一律用紅色筆批改。實驗報告的批改成績采用百分制,具體評分標準由各院部自行制定。
實驗報告裝訂要求。
實驗批改完畢后,任課老師將每門課程的每個實驗項目的實驗報告以自然班為單位、按學號升序排列,裝訂成冊,并附上一份該門課程的實驗大綱。
實驗項目名稱:順序表實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗1順序表。
一、實驗目的和要求。
掌握順序表的定位、插入、刪除等操作。
二、實驗儀器和設備。
vc6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
(1)編寫程序建立一個順序表,并逐個輸出順序表中所有數(shù)據(jù)元素的值。編寫主函數(shù)測試結(jié)果。
(2)編寫順序表定位操作子函數(shù),在順序表中查找是否存在數(shù)據(jù)元素x。如果存在,返回順序表中和x值相等的第1個數(shù)據(jù)元素的序號(序號從0開始編號);如果不存在,返回-1。編寫主函數(shù)測試結(jié)果。(3)在遞增有序的順序表中插入一個新結(jié)點x,保持順序表的有序性。
解題思路:首先查找插入的位置,再移位,最后進行插入操作;從第一個元素開始找到第一個大于該新結(jié)點值x的元素位置i即為插入位置;然后將從表尾開始依次將元素后移一個位置直至元素i;最后將新結(jié)點x插入到i位置。
(4)刪除順序表中所有等于x的數(shù)據(jù)元素。
2、選做題。
(5)已知兩個順序表a和b按元素值遞增有序排列,要求寫一算法實現(xiàn)將a和b歸并成一個按元素值遞減有序排列的順序表(允許表中含有值相同的元素)。
程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
實驗項目名稱:單鏈表實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗2單鏈表。
一、實驗目的和要求。
1、實驗目的。
掌握單鏈表的定位、插入、刪除等操作。
2、實驗要求。
(1)注意鏈表的空間是動態(tài)分配的,某結(jié)點不用之后要及時進行物理刪除,以便釋放其內(nèi)存空間。
(2)鏈表不能實現(xiàn)直接定位,一定注意指針的保存,防止丟失。
二、實驗儀器和設備。
visualc++6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
(1)編寫程序建立一個單鏈表,并逐個輸出單鏈表中所有數(shù)據(jù)元素。(2)在遞增有序的單鏈表中插入一個新結(jié)點x,保持單鏈表的有序性。
解題思路:首先查找插入的位置然后進行插入操作;從第一個結(jié)點開始找到第一個大于該新結(jié)點值的結(jié)點即為插入位置;然后在找到的此結(jié)點之前插入新結(jié)點;注意保留插入位置之前結(jié)點的指針才能完成插入操作。
(3)編寫實現(xiàn)帶頭結(jié)點單鏈表就地逆置的子函數(shù),并編寫主函數(shù)測試結(jié)果。
2、選做題。
已知指針la和lb分別指向兩個無頭結(jié)點單鏈表的首元結(jié)點。要求編一算法實現(xiàn),從表la中刪除自第i個元素起共len個元素后,將它們插入到表lb中第j個元素之前。程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
實驗項目名稱:堆棧和隊列實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗3堆棧和隊列。
一、實驗目的和要求。
(1)掌握應用棧解決問題的方法。(2)掌握利用棧進行表達式求和的算法。
(3)掌握隊列的存儲結(jié)構(gòu)及基本操作實現(xiàn),并能在相應的應用問題中正確選用它們。
二、實驗儀器和設備。
visualc++6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
(1)判斷一個算術(shù)表達式中開括號和閉括號是否配對。(2)測試“漢諾塔”問題。
(3)假設稱正讀和反讀都相同的字符序列為”回文”,試寫一個算法判別讀入的一個以’@’為結(jié)束符的字符序列是否是“回文”。
2、選做題。
在順序存儲結(jié)構(gòu)上實現(xiàn)輸出受限的雙端循環(huán)隊列的入列和出列算法。設每個元素表示一個待處理的作業(yè),元素值表示作業(yè)的預計時間。入隊列采取簡化的短作業(yè)優(yōu)先原則,若一個新提交的作業(yè)的預計執(zhí)行時間小于隊頭和隊尾作業(yè)的平均時間,則插入在隊頭,否則插入在隊尾。程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
實驗項目名稱:串實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗4串。
一、實驗目的和要求。
掌握串的存儲及應用。
二、實驗儀器和設備。
visualc++6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
(1)編寫輸出字符串s中值等于字符ch的第一個字符的函數(shù),并用主函數(shù)測試結(jié)果。
(2)編寫輸出字符串s中值等于字符ch的所有字符的函數(shù),并用主函數(shù)測試結(jié)果。
解題思路:可以將第一題程序改進成一個子函數(shù),在本題中循環(huán)調(diào)用。(3)設字符串采用單字符的鏈式存儲結(jié)構(gòu),編程刪除串s從位置i開始長度為k的子串。
2、選做題。
假設以鏈結(jié)構(gòu)表示串,編寫算法實現(xiàn)將串s插入到串t中某個字符之后,若串t中不存在這個字符,則將串s聯(lián)接在串t的末尾。
提示:為提高程序的通用性,插入位置字符應設計為從鍵盤輸入。程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
實驗項目名稱:二叉樹實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗5二叉樹。
一、實驗目的和要求。
(1)掌握二叉樹的生成,以及前、中、后序遍歷算法。(2)掌握應用二叉樹遞歸遍歷思想解決問題的方法。
二、實驗儀器和設備。
visualc++6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
(1)建立一棵二叉樹。對此樹進行前序遍歷、中序遍歷及后序遍歷,輸出遍歷序列。
(2)在第一題基礎上,求二叉樹中葉結(jié)點的個數(shù)。(3)在第一題基礎上,求二叉樹中結(jié)點總數(shù)。(4)在第一題基礎上,求二叉樹的深度。
2、選做題。
已知一棵完全二叉樹存于順序表sa中,[1…]存儲結(jié)點的值。試編寫算法由此順序存儲結(jié)構(gòu)建立該二叉樹的二叉鏈表。
解題思路:根據(jù)完全二叉樹順序存儲的性質(zhì)來確定二叉樹的父子關(guān)系即“還原”了二叉樹,之后再按照二叉樹二叉鏈表的構(gòu)造方法進行建立。完全二叉樹順序存儲的一個重要性質(zhì)為,第i個結(jié)點的左孩子是編號為2i的結(jié)點,第i個結(jié)點的右孩子是編號為2i+1的結(jié)點。程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
實驗項目名稱:圖實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗6圖。
一、實驗目的和要求。
(1)熟練掌握圖的基本概念、構(gòu)造及其存儲結(jié)構(gòu)。
(2)熟練掌握對圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷的算法。
二、實驗儀器和設備。
visualc++6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
(1)構(gòu)造一個無向圖(用鄰接矩陣表示存儲結(jié)構(gòu))。
(2)對上面所構(gòu)造的無向圖,進行深度優(yōu)先遍歷和廣度優(yōu)先遍歷,輸出遍歷序列。
2、選做題。
采用鄰接表存儲結(jié)構(gòu),編寫一個判別無向圖中任意給定的兩個頂點之間是否存在一條長度為k的簡單路徑的算法。簡單路徑是指其頂點序列中不含有重復頂點的路徑。提示:兩個頂點及k值均作為參數(shù)給出。程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
實驗項目名稱:排序?qū)嶒瀸W時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗7排序。
一、實驗目的和要求。
(1)熟練掌握希爾排序、堆排序、直接插入排序、起泡排序、快速排序、直接選擇排序、歸并排序和基數(shù)排序的基本概念。
(2)掌握以上各種排序的算法。區(qū)分以上不同排序的優(yōu)、缺點。
二、實驗儀器和設備。
visualc++6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
用隨機數(shù)產(chǎn)生100000個待排序數(shù)據(jù)元素的關(guān)鍵字值。測試下列各排序函數(shù)的機器實際執(zhí)行時間(至少測試兩個):直接插入排序、希爾排序(增量為4,2,1)、冒泡排序、快速排序、直接選擇排序、二路歸并排序、堆排序和基于鏈式隊列的基數(shù)排序。
2、選做題。
假設含n個記錄的序列中,其所有關(guān)鍵字為值介于v和w之間的整數(shù),且其中很多關(guān)鍵字的值是相同的。則可按如下方法排序:另設數(shù)組number[v…w],令number[i]統(tǒng)計關(guān)鍵字為整數(shù)i的紀錄個數(shù),然后按number重排序列以達到有序。試編寫算法實現(xiàn)上述排序方法,并討論此種方法的優(yōu)缺點。程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
實驗項目名稱:查找實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:
實驗8查找。
一、實驗目的和要求。
(1)掌握順序表查找、有序表查找、索引順序表查找的各種算法。(2)掌握哈希表設計。
二、實驗儀器和設備。
visualc++6.0。
三、實驗內(nèi)容與過程(含程序清單及流程圖)。
1、必做題。
(1)在一個遞增有序的線性表中利用二分查找法查找數(shù)據(jù)元素x。
2、選做題。
(2)構(gòu)造一個哈希表,哈希函數(shù)采用除留余數(shù)法,哈希沖突解決方法采用鏈地址法。設計一個測試程序進行測試。
提示:構(gòu)造哈希表只是完成查找的第一步,大家應該掌握在哈希表上進行查找的過程,可以試著編程序?qū)崿F(xiàn)。程序清單:
四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)。
五、實驗體會(遇到問題及解決辦法,編程后的心得體會)。
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇三
首先你要知道什么是數(shù)據(jù)結(jié)構(gòu),學習數(shù)據(jù)結(jié)構(gòu)的意義。這將是你學習的動力所在。計算機軟件都用到了數(shù)據(jù)結(jié)構(gòu)。所以,學好數(shù)據(jù)結(jié)構(gòu)對于你將來從事計算機編程類的工作有十分重要的作用。
數(shù)據(jù)結(jié)構(gòu)中的基本概念,你要一定清楚。平時要多看書,要在計算機上去調(diào)試程序,在調(diào)試的過程中,你才能發(fā)現(xiàn)自己的問題,然后及時解決。在上機調(diào)試的過程中,更要大膽嘗試,注重運用。拿到一個題時,更要深入分析,嘗試用不同的算法去設計。當然編程的時候,要注意格式。比如:變量一定要先定義后使用。變量的定義不要定義在中間。
算法與數(shù)據(jù)結(jié)構(gòu)是緊密聯(lián)系,所以你算法一定要會。如果你是學生,只需把課本上出現(xiàn)的搞懂就好了,比如線性表的插入,刪除,查找算法,它都是固定的。你就要理解,當然你要學會畫圖。對于書中的內(nèi)容要熟悉。
數(shù)據(jù)結(jié)構(gòu)的大綱如下:線性表、棧和隊列,串、數(shù)組和廣義表、樹與森林、圖、還有就是查找和排序。簡單的總結(jié)一下也就是它的邏輯結(jié)構(gòu):線性結(jié)構(gòu)和非線性結(jié)構(gòu)。這些基本的內(nèi)容你如果搞懂了,你的數(shù)據(jù)結(jié)構(gòu)也就學好了。
要嚴格要求自己。在學習算法的過程中,你要想它為什么要這樣設計?它的優(yōu)點在哪里?想著去改進算法,慢慢的的你的邏輯思維能力也就提高了。你會發(fā)現(xiàn)其實數(shù)據(jù)結(jié)構(gòu)也就那么回事,不是很難。
有不懂得地方要及時請教老師,不要不懂裝懂。不要放過任何一個細節(jié),因為我的專業(yè)就是計算機,所以有很多都是深有體會。
注意:
一、認真安排好你的時間。
首先你要清楚一周內(nèi)所要做的事情,然后制定一張作息時間表。在表上填上那些非花不可的時間,如吃飯、睡覺、上課、娛樂等。安排這些時間之后,選定合適的、固定的時間用于學習,必須留出足夠的時間來完成正常的閱讀和課后作業(yè)。當然,學習不應該占據(jù)作息時間表上全部的空閑時間,總得給休息、業(yè)余愛好、娛樂留出一些時間,這一點對學習很重要。一張作息時間表也許不能解決你所有的問題,但是它能讓你了解如何支配你這一周的時間,從而使你有充足的時間學習和娛樂。
二、學習前先預習。
這就意味著在你認真投入學習之前,先把要學習的內(nèi)容快速瀏覽一遍,了解學習的大致內(nèi)容及結(jié)構(gòu),以便能及時理解和消化學習內(nèi)容。當然,你要注意輕重詳略,在不太重要的地方你可以花少點時間,在重要的地方,你可以稍微放慢學習進程。
三、充分利用課堂時間。
學習成績好的學生很大程度上得益于在課堂上充分利用時間,這也意味著在課后少花些功夫。課堂上要及時配合老師,做好筆記來幫助自己記住老師講授的內(nèi)容,尤其重要的是要積極地獨立思考,跟得上老師的思維。
四、學習要有合理的規(guī)律。
課堂上做的筆記你要在課后及時復習,不僅要復習老師在課堂上講授的重要內(nèi)容,還要復習那些你仍感模糊的認識。如果你堅持定期復習筆記和課本,并做一些相關(guān)的習題,你定能更深刻地理解這些內(nèi)容,你的記憶也會保持更久。定期復習能有效地提高你的考試成績。
五、一個安靜的、舒適的學習環(huán)境。
選擇某個地方作你的學習之處,這一點很重要。它可以是你的單間書房或教室或圖書館,但是它必須是舒適的,安靜而沒有干擾。當你開始學習時,你應該全神貫注于你的功課,切忌“身在曹營心在漢”。
六、樹立正確的考試觀。
平時測驗的目的主要看你掌握功課程度如何,所以你不要弄虛作假,而應心平氣和地對待它?;蛟S,你有一兩次考試成績不盡如人意,但是這不要緊,只要學習扎實,認真對待,下一次一定會考出好成績來。通過測驗,可讓你了解下一步學習更需要用功夫的地方,更有助于你把新學的知識記得牢固。
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇四
我是計算機系2006級本科生,在大二上學期選修了張銘老師的數(shù)據(jù)結(jié)構(gòu)與算法實驗班。數(shù)據(jù)結(jié)構(gòu)與算法課是每一個計算機專業(yè)學生的必修課,從我目前所學習的后續(xù)課程,包括算法設計、編譯技術(shù)等課程來看,這門課是其非常重要的基礎課程之一。
我從初中就開始接觸高中的信息學奧林匹克競賽,對數(shù)據(jù)結(jié)構(gòu)與算法方面的相關(guān)知識接觸的比較早。張老師為了更有針對性地對具有不同基礎的學生進行因材施教,開設了數(shù)據(jù)結(jié)構(gòu)算法實驗班,我很榮幸地被批準通過選修實驗班的課。通過一個學期的學習,我加深了對數(shù)據(jù)結(jié)構(gòu)與算法的相關(guān)知識的理解,并通過張老師細致地講解,將自己過去從高中競賽所學到的離散的、碎片式的知識點連貫地串了起來,形成了一套較為完整的知識體系。我想這對于我后續(xù)的學習和對更高層次數(shù)據(jù)結(jié)構(gòu)與算法知識的探索,都是大有裨益的。
我認為,在這門課的學習過程中,張老師所引導我們掌握的不僅僅是知識點與問題的簡單聯(lián)系,而是進行拓展性地思考和探索。例如樹的順序存儲,除了講解各種帶標記的存儲方法以外,我們還討論了這些存儲方式中記錄的信息是不是都是必須的、如何用最少的標記信息表示一棵樹等問題。這就讓我們對原本看似平凡的知識有更深刻的認識。另外,我們所完成的作業(yè)和練習也都不是簡單的解題訓練,很多問題都是帶有可研究性與可擴展性的,甚至很多問題沒有單一的結(jié)論,這就引導我們創(chuàng)造性地應用所學的知識去研究問題、解決問題。
張老師在實驗班的課堂上不但注重基礎知識的講解,還會適當介紹一些較為高級的數(shù)據(jù)結(jié)構(gòu)(例如伸展樹、后綴樹等),以及一些較新的算法研究成果。這些介紹不僅對于鞏固基礎數(shù)據(jù)結(jié)構(gòu)有很強的促進作用,還讓對我們往后更難的課程更有信心。事實上,我認為算法與數(shù)據(jù)結(jié)構(gòu)在我們計算機專業(yè)課程的學習中是無處不在的,圖論中的樹、圖模型,組合數(shù)學中模型的計數(shù),編譯技術(shù)中關(guān)于文法的分析、自動機模型,無一不包含數(shù)據(jù)結(jié)構(gòu)與算法的理論。能夠更快、更好地掌握后續(xù)這些課程的知識體系,于我在數(shù)據(jù)結(jié)構(gòu)與算法課中所學是分不開的。我是北大acm隊員之一,并于今年代表北京大學參加了第32屆acm-icpc國際大學生程序設計競賽全球總決賽,獲得了第13名。acm-icpc競賽十分注重選手對于模型抽象的能力、對于數(shù)據(jù)結(jié)構(gòu)與算法的理解以及編程能力。這門課程對我參加acm競賽無疑也是幫助甚大。它讓我更系統(tǒng)、透徹地理解了數(shù)據(jù)結(jié)構(gòu)與算法的相關(guān)知識,對于在賽場上的解題能力和解題速度都有很大的提高??偠灾?,張老師的數(shù)據(jù)結(jié)構(gòu)與算法這門課程作為我的必修課之一,對于我計算機專業(yè)的學習是幫助很大并且影響深遠的。
北京大學計算機系2006級本科生。
2008年4月14日。
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇五
(一)實驗目的和要求:
1.熟悉vc集成環(huán)境。
2.會定義線性表的順序結(jié)構(gòu)和鏈式結(jié)構(gòu)。
3.熟悉對線性表的基本操作,如插入、刪除等。
(二)實驗內(nèi)容和原理或涉及的知識點(綜合性實驗):
自己編寫程序?qū)崿F(xiàn)線性表的建立、插入、刪除等功能。
寫出線性表、順序表、鏈表的定義,簡單寫出主要算法的思路。
(三)實驗條件:安裝有vc的計算機。
(四)實驗設計方案。
2.鏈表的插入操作3.鏈表的刪除操作4.鏈表數(shù)據(jù)元素的訪問。
(五)實驗過程、數(shù)據(jù)和實驗結(jié)果記錄。
程序代碼(略)。
實驗過程中輸入/輸出數(shù)據(jù)、程序運行結(jié)果的記錄。(一定要有?。?。
第二次實驗棧和隊列。
(一)實驗目的和要求:
(二)實驗內(nèi)容和原理或涉及的知識點(綜合性實驗):
寫出棧的定義,簡單寫出主要算法的思路。
(三)實驗條件:安裝有vc的計算機。
(四)實驗設計方案。
設計的算法有:1.初始化棧2.入棧3.出棧。
4.判斷棧是否為空5.十進制轉(zhuǎn)換為八進制。
(五)實驗過程、數(shù)據(jù)和實驗結(jié)果記錄。
程序代碼(略)。
實驗過程中輸入/輸出數(shù)據(jù)、程序運行結(jié)果的記錄。(一定要有!)。
(一)實驗目的和要求:
1.熟練掌握二叉樹的結(jié)構(gòu),以及這種數(shù)據(jù)結(jié)構(gòu)的特點2.會定義二叉樹的鏈式存儲結(jié)構(gòu)。
3.能實現(xiàn)二叉樹的建立、遍歷等功能,需要完成先序遍歷、中序遍歷和后序遍歷遞歸算法。
(二)實驗內(nèi)容和原理或涉及的知識點(綜合性實驗):
自己編寫程序?qū)崿F(xiàn)二叉樹的各種基本操作,如二叉樹的建立(頭插法或者尾插法),遍歷等寫出二叉樹的定義,簡單寫出主要算法的思路。
(三)實驗條件:安裝有vc的計算機。
(四)實驗設計方案。
(五)實驗過程、數(shù)據(jù)和實驗結(jié)果記錄。
程序代碼(略)。
實驗過程中輸入/輸出數(shù)據(jù)、程序運行結(jié)果的記錄。(一定要有!)。
第四次實驗。
查找。
(一)實驗目的和要求:
1.熟練掌握查找算法的基本思想,以及算法的適用條件。
2.會定義靜態(tài)查找表的順序結(jié)構(gòu),能實現(xiàn)順序查找、二分查找。
(二)實驗內(nèi)容和原理或涉及的知識點(綜合性實驗):
自己編寫程序?qū)崿F(xiàn)順序查找、二分查找。
寫出靜態(tài)查找表的定義,簡單寫出主要算法的思路。
(三)實驗條件:安裝有vc的計算機。
(四)實驗設計方案。
設計的算法有:1.建立靜態(tài)查找表2.順序查找。
3.建立有序的靜態(tài)查找表4.二分查找。
(五)實驗過程、數(shù)據(jù)和實驗結(jié)果記錄。
程序代碼(略)。
實驗過程中輸入/輸出數(shù)據(jù)、程序運行結(jié)果的記錄。(一定要有!)。
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇六
數(shù)據(jù)結(jié)構(gòu)與算法是計算機程序設計的重要理論技術(shù)基礎,它不僅是計算機科學的核心課程,而且也已經(jīng)成為其他理工專業(yè)的熱門選修課。隨著高級語言的發(fā)展,數(shù)據(jù)結(jié)構(gòu)在計算機的研究和應用中已展現(xiàn)出強大的生命力,它兼顧了諸多高級語言的特點,是一種典型的結(jié)構(gòu)化程序設計語言,它處理能力強,使用靈活方便,應用面廣,具有良好的可移植性。通過學習,先報告如下:
第一章的內(nèi)容主要包括有關(guān)數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法、算法實現(xiàn)、c語言使用中相關(guān)問題和算法分析等基本概念和相關(guān)知識。其中重點式數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法等概念;c語言中則介紹了指針、結(jié)構(gòu)變量、函數(shù)、遞歸、動態(tài)存儲分配、文件操作、程序測試與調(diào)試問題等內(nèi)容。
第二章主要介紹的是線性邏輯結(jié)構(gòu)的數(shù)據(jù)在順序存儲方法下的數(shù)據(jù)結(jié)構(gòu)順序表(包括順序串)的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本運算及其相關(guān)應用。其中重點一是順序表的定義、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本運算和性能分析等概念和相關(guān)知識。二是順序表的應用、包括查找問題(簡單順序查找、二分查找、分塊查找)、排序問題(直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序、歸并排序)、字符處理問題(模式匹配)等內(nèi)容。本章重點和難點在查找和排序問題的算法思想上,6種排序方法的性能比較。
第三章主要介紹的是線性邏輯結(jié)構(gòu)的數(shù)據(jù)在鏈接存儲方法下數(shù)據(jù)結(jié)構(gòu)鏈表的相關(guān)知識。主要是單鏈表、循環(huán)鏈表的數(shù)據(jù)類型結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、基本運算及其實現(xiàn)以及鏈表的相關(guān)應用問題,在此基礎上介紹了鏈串的相關(guān)知識。在應用方面有多項式的相加問題、歸并問題、箱子排序問題和鏈表在字符處理方面的應用問題等。本章未完全掌握的是循環(huán)鏈表的算法問題和c的描述。
第四章介紹在兩種不同的存儲結(jié)構(gòu)下設計的堆棧,即順序棧和鏈棧的相關(guān)知識,了解堆棧的相關(guān)應用,掌握應用堆棧來解決實際問題的思想及方法。本章主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和基本運算算法及其性能分析。本章堆棧算法思想較為簡單,所以能較好掌握。
第五章主要介紹順序存儲和鏈接存儲方法下的兩種隊列、順序(循環(huán))隊列和鏈隊列的數(shù)據(jù)結(jié)構(gòu)、基本運算及其性能分析以及應用。順序隊列(重點是循環(huán)隊列)和鏈隊列的概念、數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)和基本運算算法及其性能分析等。本章同堆棧有點類似,算法思想較為簡單,所以能較好掌握;但難點重在循環(huán)隊列隊空、隊滿的判斷條件問題。第六章“特殊矩陣、廣義表及其應用”將學習數(shù)組、稀疏矩陣和廣義表的基本概念,幾種特殊矩陣的存儲結(jié)構(gòu)及其基本運算,在此基礎上學習特殊矩陣的計算算法與廣義表應用等相關(guān)問題。本章的重點是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)及其基本運算算法。掌握了特殊矩陣的壓縮存儲結(jié)構(gòu),在該存儲結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計算和廣義表的存儲結(jié)構(gòu)。
第七章“二叉樹及其應用”的知識結(jié)構(gòu)主要是:非線性結(jié)構(gòu)數(shù)據(jù)二叉樹的定義、性質(zhì)、邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及其各種基本運算算法,包括二叉樹的建立、遍歷、線索化等算法。在此基礎上,介紹二叉樹的一些應用問題,包括哈夫曼編碼問題、(平衡)二叉排序樹問題和堆排序問題等。
第八章“樹和森林及其應用”介紹樹和森林的數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析,樹和森林與二叉樹之間的轉(zhuǎn)換算法等,在此基礎上介紹樹的應用---b-樹,應用b-樹來實現(xiàn)數(shù)據(jù)元素的動態(tài)查找。本章基本掌握樹和森林的概念和性質(zhì)、數(shù)據(jù)結(jié)構(gòu)、樹的基本算法及性能分析,樹和二叉樹間的轉(zhuǎn)換及其算法,并用應用b-樹來實現(xiàn)數(shù)據(jù)元素的動態(tài)查找未能掌握好。
第九章“散列結(jié)構(gòu)及其應用”是邏輯結(jié)構(gòu)“集合型”的數(shù)據(jù)元素在散列存儲方法下的數(shù)據(jù)結(jié)構(gòu)及其應用知識內(nèi)容。主要介紹散列函數(shù)的概念、散列結(jié)構(gòu)的概念、散列存儲結(jié)構(gòu)的概念---散列表、散列函數(shù)和散列表中解決沖突的處理方法---開放定址法、鏈地址法以及散列表的基本算法及其性能分析。本章概念較為多,所以掌握不太好。
第十章“圖及其應用”是邏輯結(jié)構(gòu)為“圖形”的數(shù)據(jù)結(jié)構(gòu)及其應用知識內(nèi)容,主要介紹圖的定義和基礎知識,圖的2種存儲結(jié)構(gòu)。圖的基本算法以及圖的典型應用問題(最小生成樹、最短路徑、拓撲排序和關(guān)鍵路徑等)。
二、對各知識點的掌握情況。
我對各知識點的掌握情況總結(jié)如下:
第一章不太難,能基本掌握。但關(guān)系全書的時間性能分析有些未能全部掌握。第二章本章重點和難點在查找和排序問題的算法思想上,6種排序方法的性能比較。本章未掌握的為希爾排序、快速排序、歸并排序的時間復雜度分析。第三章,對鏈表掌握還好,對其數(shù)據(jù)結(jié)構(gòu)進行了分析,有循環(huán)鏈表,掌握的不是很好,對其中一些用法不熟練。第四章堆棧,本章堆棧算法思想較為簡單,所以能較好掌握,但表達式計算問題未掌握好的。第五章的循環(huán)隊列隊空、隊滿的判斷條件問題掌握的不是很好。第六章的重點是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)及其基本運算算法。掌握了特殊矩陣的壓縮存儲結(jié)構(gòu),在該存儲結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計算和廣義表的存儲結(jié)構(gòu)。第七章對二叉樹掌握較好,其概念,存儲,遍歷有很好的掌握。就是對二叉排序樹有點生疏,它的生成算法不是很會。第八章樹樹與二叉樹之間的轉(zhuǎn)換,森林與二叉樹的轉(zhuǎn)換算法思想基本掌握。第九章散列的一些知識,沒有深入學習,大概了解了散列存儲結(jié)構(gòu)散列表,散列函數(shù),沖突的處理方法。第十章了解了圖的逆鄰接表的存儲結(jié)構(gòu),關(guān)鍵路徑求解算法未能掌握好,不能靈活運用圖的不同數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復雜的應用問題。
三、學習體會。
通過學習數(shù)據(jù)結(jié)構(gòu)與算法,讓我對程序有了新的認識,也有了更深的理解。同時,也讓我認識到,不管學習什么,概念是基礎,所有的知識框架都是建立在基礎概念之上的,所以,第一遍看課本要將概念熟記于心,然后構(gòu)建知識框架。并且,對算法的學習是學習數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。在第二遍看課本的過程中,要注重對算法的掌握。對于一個算法,讀一遍可能能讀懂,但不可能完全領會其中的思想。掌握一個算法,并不是說將算法背過,而是掌握算法的思想。我們需要的是耐心。每看一遍就會有這一遍的收獲。讀懂算法之后,自己再默寫算法,寫到不會的地方,看看課本想想自己為什么沒有想到。對算法的應用上,學習算法的目的是利用算法解決實際問題。會寫課本上已有的算法之后,可以借其思想進行擴展,逐步提高編程能力。
四、對課程教學的建議。
1、感覺上課時的氣氛不是很好,雖然大部分人都在聽,可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話題,可以是大家都非常關(guān)心的一些內(nèi)容,這樣既讓大家能在思考之余有一個放松,也能夠提高學生的學習積極性和學習效率。
2、學習的積極性很重要,有時候我們花了很長時間去寫實驗報告,也很認真的去理解去掌握,可是最后實驗報告可能就只得了一個c,抄的人反而得a,這樣的話很容易打擊學生的積極性,在后面的實驗報告中沒動力再去認真寫。所以希望老師能在這方面有所調(diào)整。
3、雖然講課的時間很緊,但是還是希望老師能在講述知識點的時候能運用實際的調(diào)試程序來給我們講解,這樣的話能讓我們對這些內(nèi)容有更深刻的印象和理解。
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇七
為了順利完成實驗教學任務,確保人身、設備的安全,培養(yǎng)嚴謹、踏實、實事求是的科學作風和愛護國家財產(chǎn)的優(yōu)良品質(zhì),特制定以下實驗規(guī)則:
1、實驗前必須充分預習,完成指定的預習任務。預習要求如下:
(1)認真閱讀指導書,進行必要的設計與計算。(2)熟悉實驗內(nèi)容。
(3)預先復習,并按要求編寫程序。(4)未完成預習任務者不得進入實驗室。
2、遵守以下紀律:
(1)在實驗室不得做和實驗無關(guān)的事情。
(2)進行任課老師指定內(nèi)容以外的實驗,必須經(jīng)指導教師同意。(3)遵守紀律,不遲到。
(4)保持實驗室內(nèi)安靜、整潔,愛護公物,不許亂寫亂畫。
實驗環(huán)境。
本實驗在386以上的微機上進行,運行環(huán)境為vc6.0。
實驗報告要求。
1、實驗題目2.實驗目的3.實驗環(huán)境。
4.實驗內(nèi)容與完成情況(可以附上自主設計的源程序)5.出現(xiàn)的問題及對問題的解決方案6.實驗思考:(學生對本次實驗的收獲的總結(jié))。
實驗一單鏈表。
(一)一、實驗目的。
掌握線性表的鏈式存儲結(jié)構(gòu)及其基本操作。
二、預習要求。
1、看懂書上的算法,深入理解鏈表的物理存儲模式和邏輯模式。
2、根據(jù)要求,編寫程序準備上機調(diào)試。
三、實驗內(nèi)容。
實現(xiàn)一個簡單的學生信息管理系統(tǒng),該系統(tǒng)的功能有:
1、利用單鏈表建立學生基本信息表。
2、瀏覽每個學生的信息。
3、根據(jù)學號查詢某個學生的基本信息。
4、添加學生信息到單鏈表中。
5、刪除一個學生的信息。
四、實現(xiàn)提示。
設計結(jié)點的結(jié)構(gòu)體類型,包括學生的學號、姓名、年齡、性別;要求設計一個簡單的菜單界面,根據(jù)需要選擇所要進行的操作;構(gòu)造函數(shù),每一個函數(shù)實現(xiàn)上述的一個功能。
實驗二單鏈表。
(二)一、實驗目的。
掌握線性表的鏈式存儲結(jié)構(gòu)及其基本操作。
二、預習要求。
1、看懂書上的算法,深入理解鏈表的物理存儲模式和邏輯模式。
2、根據(jù)要求,編寫程序準備上機調(diào)試。
三、實驗內(nèi)容。
1、實現(xiàn)單鏈表的就地逆置。
2、建立兩個非遞減有序單鏈表,然后合并成一個非遞減鏈表。
3、建立兩個非遞減有序單鏈表,然后合并成一個非遞增鏈表。
4、編寫一個主函數(shù),調(diào)試上述算法。
四、選做題、思考題。
1、如何用帶表頭結(jié)點的單鏈表作為多項式的存儲表示,實現(xiàn)兩個多項式的相加。
2、約毖夫環(huán)的實現(xiàn)。
3、如何利用文件實現(xiàn)學生信息的存取。
實驗三棧。
一、實驗目的。
深入了解并掌握棧的特性及其在實際中的應用;熟練掌握棧的算法實現(xiàn);運用棧操作求解實際問題。
二、預習要求。
1、看懂書上的算法,深入理解棧的特性和存儲結(jié)構(gòu),以便在實際問題背景下靈活運用。
2、根據(jù)要求,編寫程序準備上機調(diào)試。
三、實驗內(nèi)容。
利用棧實現(xiàn)數(shù)據(jù)的分類,要求當輸入為偶數(shù)時進棧1,當輸入為奇數(shù)時進棧2,最后分別從棧1和棧2輸出偶數(shù)和奇數(shù)序列。
四、實現(xiàn)提示。
1、開辟一個連續(xù)的存儲空間,實現(xiàn)兩個棧順序存儲空間的共享;分別在兩端設置棧頂指針,并按要求實現(xiàn)棧操作。
2、采用順序存儲實現(xiàn)棧的初始化、入棧、出棧操作。
五、選做題、思考題。
1、兩??臻g共享時,棧滿的條件是什么?
2、為停車場編制進行管理的模擬程序(習題集p96,2.1)。
3、編寫程序,利用棧實現(xiàn)表達式求值。
實驗四二叉樹。
一、實驗目的。
通過實踐掌握二叉樹的存儲結(jié)構(gòu)和遍歷思想;掌握二叉樹的常見算法的程序?qū)崿F(xiàn)。
二、預習要求。
二叉樹的三種遍歷方法。
三、實驗內(nèi)容。
1、輸入字符序列,建立二叉鏈表。
2、利用棧,編寫非遞歸算法,編程實現(xiàn)二叉樹的中序遍歷。
3、求二叉樹的葉子結(jié)點個數(shù)。
4、在主函數(shù)中設計一個簡單的菜單,分別調(diào)試上述算法。
四、選做題、思考題。
1、如何實現(xiàn)二叉樹的后序遍歷(非遞歸)。
2、如何求二叉樹的高度。
實驗五最短路徑(旅游景點導游咨詢模擬)。
一、實驗目的。
利用圖的最短路徑原理為用戶提供路徑咨詢,掌握求最短路徑的算法并編程實現(xiàn)。
二、預習要求。
學習了解圖的存儲結(jié)構(gòu),掌握求最短路徑的兩種算法。
三、實驗內(nèi)容。
設計一個旅游景點導游模擬程序,為來訪的客人提供景點最短路徑的信息查詢服務,任意選取n城市,構(gòu)成一個有向帶權(quán)圖,圖中頂點表示城市,邊上的權(quán)值表示兩點間的距離,根據(jù)用戶指定的始點和終點輸出相應的最短路徑。
四、實現(xiàn)提示。
咨詢以用戶和計算機的對話方式進行,由用戶輸入起始點和終點,輸出信息:最短路徑是多少?并指出所經(jīng)過的城市。存儲結(jié)構(gòu)可選用鄰接矩陣。
五、選做題、思考題。
1.如何實現(xiàn)對城市信息進行編輯(如:添加或刪除)的功能。
2.用鄰接表作存儲結(jié)構(gòu),求一指定景點出發(fā),到其余各景點的最短路徑。
實驗六內(nèi)部排序。
一、實驗目的。
直觀感受算法的關(guān)鍵字比較次數(shù)和關(guān)鍵字移動次數(shù)。
二、預習要求。
1、常見的排序算法(插入排序、交換排序、選擇排序、歸并排序、基數(shù)排序等)的思想、特點及其適用條件。
2、根據(jù)要求,編寫程序準備上機調(diào)試。
三、實驗內(nèi)容。
1、對直接插入排序和簡單選擇排序算法進行關(guān)鍵字比較次數(shù)和關(guān)鍵字移動次數(shù)的比較。
2、利用鏈式存儲結(jié)構(gòu),編寫程序,實現(xiàn)直接插入排序和冒泡排序。
四、實現(xiàn)提示。
測試數(shù)據(jù)可以為幾組典型的數(shù)據(jù):正序、逆序、亂序。
五、選做題、思考題。
1、快速排序算法的非遞歸實現(xiàn)。
2、結(jié)合實驗,理解針對不同待排元素的特點而選擇不同排序方法的重要性。
3、如何對本實驗進行時間、空間的復雜度分析。
算法與數(shù)據(jù)結(jié)構(gòu)實驗報告篇八
婚姻狀況:未婚民族:漢族。
誠信徽章:未申請身高:157cm。
人才測評:未測評體重:
人才類型:在校學生。
應聘職位:幼教/保育員,家教,銷售主管/銷售代表/客戶代表。
工作年限:1職稱:
求職類型:兼職可到職日期:隨時
月薪要求:面議希望工作地區(qū):天河區(qū),越秀區(qū),廣州。
工作經(jīng)歷。
無起止年月:-10~-05。
公司性質(zhì):所屬行業(yè):
擔任職位:作業(yè)指導。
工作描述:輔導小學生作業(yè),照顧小學生。
擔任職位:地鐵志愿者。
工作描述:
畢業(yè)院校:廣東交通職業(yè)技術(shù)學院。
最高學歷:大專獲得學位:畢業(yè)日期:-06
專業(yè)一:軟件技術(shù)專業(yè)二:
起始年月終止年月學校(機構(gòu))所學專業(yè)獲得證書證書編號。
語言能力。
外語:英語良好粵語水平:一般。
其它外語能力:
國語水平:優(yōu)秀。
工作能力及其他專長。
個人自傳。
您可能關(guān)注的文檔
- 市場調(diào)查報告特點有選擇題 市場調(diào)查報告具有的特點(四篇)
- 交通治堵繪畫(精選11篇)
- 2023年如何做好部門間的溝通(匯總8篇)
- 最新青島版六年級上冊科學教學工作總結(jié)與反思(優(yōu)質(zhì)17篇)
- 2023年高效美術(shù)課堂創(chuàng)設之我見論文 高效美術(shù)課堂構(gòu)建論文(5篇)
- 誠信企業(yè)評選方案(匯總13篇)
- 家庭理財規(guī)劃案例(優(yōu)質(zhì)18篇)
- 最新春季動物防疫工作匯報(優(yōu)質(zhì)11篇)
- 最新職業(yè)病報告書(通用18篇)
- 最新大象的讀后感(實用14篇)
- 學生會秘書處的職責和工作總結(jié)(專業(yè)17篇)
- 教育工作者分享故事的感悟(熱門18篇)
- 學生在大學學生會秘書處的工作總結(jié)大全(15篇)
- 行政助理的自我介紹(專業(yè)19篇)
- 職業(yè)顧問的職業(yè)發(fā)展心得(精選19篇)
- 法治興則民族興的實用心得體會(通用15篇)
- 教師在社區(qū)團委的工作總結(jié)(模板19篇)
- 教育工作者的社區(qū)團委工作總結(jié)(優(yōu)質(zhì)22篇)
- 體育教練軍訓心得體會(優(yōu)秀19篇)
- 學生軍訓心得體會范文(21篇)
- 青年軍訓第二天心得(實用18篇)
- 警察慰問春節(jié)虎年家屬的慰問信(優(yōu)秀18篇)
- 家屬慰問春節(jié)虎年的慰問信(實用20篇)
- 公務員慰問春節(jié)虎年家屬的慰問信(優(yōu)質(zhì)21篇)
- 植物生物學課程心得體會(專業(yè)20篇)
- 政府官員參與新冠肺炎疫情防控工作方案的重要性(匯總23篇)
- 大學生創(chuàng)業(yè)計劃競賽范文(18篇)
- 教育工作者行政工作安排范文(15篇)
- 編輯教學秘書的工作總結(jié)(匯總17篇)
- 學校行政人員行政工作職責大全(18篇)
相關(guān)文檔
-
最新寒假英語心得體會和感想(大全18篇)
47下載數(shù) 946閱讀數(shù)
-
參觀糧倉心得體會簡短(模板9篇)
37下載數(shù) 136閱讀數(shù)
-
會計對賬的心得體會和方法(實用10篇)
44下載數(shù) 557閱讀數(shù)
-
最新防溺水手抄報內(nèi)容文字怎么寫(通用12篇)
40下載數(shù) 160閱讀數(shù)
-
2023年全國科普日活動方案小學(模板12篇)
37下載數(shù) 227閱讀數(shù)
-
2023年黨群服務中心參觀心得體會范文(通用12篇)
33下載數(shù) 380閱讀數(shù)