手機(jī)閱讀

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告(大全8篇)

格式:DOC 上傳日期:2023-11-19 03:09:30 頁碼:9
算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告(大全8篇)
2023-11-19 03:09:30    小編:ZTFB

報告的撰寫需要收集和整理大量的素材和資料,確保準(zhǔn)確性和可信度。報告的篇幅應(yīng)該適中,盡量保持簡潔,避免重復(fù)和贅述。閱讀報告范文可以幫助我們拓寬思路,增加創(chuàng)新和思考的角度。

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇一

1004012033陳孝婕10計(jì)本3“數(shù)據(jù)結(jié)構(gòu)與算法”這門課程對于計(jì)算機(jī)科學(xué)與技術(shù)系的學(xué)生來說是非常重要的課程。這門課程主要包括十個章節(jié)。

一.每章主要知識點(diǎn)總結(jié)和個人掌握情況。

第一章主要要求學(xué)生掌握數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法及算法分析等基本概念和基礎(chǔ)知識。另外,第一章結(jié)合課程學(xué)習(xí)要求,復(fù)習(xí)和掌握算法描述工具--c語言中的指針類型與指針變量、結(jié)構(gòu)類型與結(jié)構(gòu)變量、函數(shù)與參數(shù)、遞歸定義和遞歸函數(shù)、動態(tài)存儲分配、文件操作、程序測試和測試集、測試數(shù)據(jù)的設(shè)計(jì)和程序調(diào)試等問題。

從這一章中我不僅學(xué)到了數(shù)據(jù)結(jié)構(gòu)的基本概念和基礎(chǔ)知識,了解到什么是數(shù)據(jù)結(jié)構(gòu),我們?yōu)槭裁匆獙W(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課程。而且復(fù)習(xí)了大一下學(xué)期所學(xué)的c語言程序課程設(shè)計(jì)中的算基本法語句。有利于數(shù)據(jù)結(jié)構(gòu)與算法后面課程的學(xué)習(xí)。

第二章主要學(xué)習(xí)順序表(包括順序串)數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本算法及相關(guān)應(yīng)用。知識點(diǎn)包括順序表的概念、數(shù)據(jù)結(jié)構(gòu)定義、數(shù)據(jù)類型描述、基本算法的實(shí)現(xiàn)及其性能的分析等知識;還有“查找”和“排序”的概念,“查找”包括3種查找方式:簡單順序查找、二分查找、分塊查找;“排序”包括直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序和歸并排序(重點(diǎn)為二路歸并排序)6種排序方式;掌握應(yīng)用順序表來進(jìn)行查找和排序的各類算法以及不同的查找和排序算法間的性能差異。在此基礎(chǔ)上,理解順序串的相關(guān)應(yīng)用。

從這一章中我學(xué)習(xí)到各種不同的查找方法和排序方式,其中二分查找作為重點(diǎn)查找方法我進(jìn)行了重點(diǎn)學(xué)習(xí),熟悉并熟練地運(yùn)用二分查找并且了解到各種排序方法適合于不同的順序表。對于順序串的學(xué)習(xí),我主要掌握了字符串的基本運(yù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)兩種)。

第三章主要學(xué)習(xí)鏈表(單聊表、循環(huán)鏈表)的概念、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型描述、基本算法以及鏈表相關(guān)應(yīng)用。需要掌握各種鏈表的概念、數(shù)據(jù)結(jié)構(gòu)定義、基本算法實(shí)現(xiàn)以及算法的性能分析等知識,掌握鏈表的相關(guān)應(yīng)用方法,在此基礎(chǔ)上掌握鏈串的相關(guān)知識。

通過這一章我學(xué)習(xí)了另一種數(shù)據(jù)結(jié)構(gòu)——鏈表,在邏輯結(jié)構(gòu)上,鏈表與順序表一樣,也是線性邏輯結(jié)構(gòu);單鏈表借助“地址”的概念,使用了鏈?zhǔn)酱鎯Y(jié)構(gòu),產(chǎn)生了一種新的數(shù)據(jù)結(jié)構(gòu)——鏈表,鏈表的基本操作是地址運(yùn)算,在此基礎(chǔ)上構(gòu)成的鏈表基本算法的特點(diǎn)也就不同,從鏈表算法的功能看,鏈表的基本運(yùn)算與順序表基本相同,但實(shí)現(xiàn)方法和過程與順序表是不同的,鏈表可分為靜態(tài)鏈表和動態(tài)鏈表兩種。這一章我學(xué)習(xí)到的實(shí)際應(yīng)用是鏈表的創(chuàng)建、插入和刪除等基本操作。循環(huán)鏈表的建立和查詢方法。

第四章主要知識點(diǎn)是在兩種不同的存儲結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧。主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和基本運(yùn)算算法及其性能分析。通過對本章的學(xué)習(xí),要求掌握順序棧及鏈棧的數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析等知識。在此基礎(chǔ)上,了解堆棧的相關(guān)應(yīng)用,掌握應(yīng)用堆棧解決實(shí)際問題的思想及方法。

通過對這一章的學(xué)習(xí),我了解了堆棧的概念,堆棧的原理、創(chuàng)建方法以及使用方式?!昂筮M(jìn)先出”是其基本原則。利用堆??梢暂p松方便的解決對稱問題以及括號匹配等問題。堆棧與順序表、鏈表不同的是,堆棧只能對一端的數(shù)據(jù)元素進(jìn)行操作,即只在棧頂進(jìn)行元素的插入和刪除。掌握順序棧和鏈表的存儲結(jié)構(gòu)是學(xué)習(xí)堆棧的要素之一。堆棧是一類常用的數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于各種程序設(shè)計(jì)中。

第五章的重點(diǎn)知識是在順序存儲和鏈接存儲下的兩種隊(duì)列——順序(循環(huán))隊(duì)列和鏈隊(duì)。

列的數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其性能分析以及應(yīng)用。通過本章的學(xué)習(xí),要求掌握順序隊(duì)列(重點(diǎn)是循環(huán)隊(duì)列)及鏈隊(duì)列的概念、數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析等知識。在此基礎(chǔ)上,了解隊(duì)列的相關(guān)應(yīng)用,掌握應(yīng)用隊(duì)列來解決實(shí)際問題的思想及方法。

通過這一章的學(xué)習(xí),我掌握了隊(duì)列的定義,概念,創(chuàng)建以及“對頭刪除”,“隊(duì)尾插入”的原則。重點(diǎn)了解了判斷循環(huán)隊(duì)列空和滿的判斷條件。同堆棧一樣,隊(duì)列也是一種具有線性邏輯結(jié)構(gòu)、運(yùn)算受限制的數(shù)據(jù)結(jié)構(gòu)。與堆棧只在一端(棧頂)進(jìn)行元素的插入和刪除運(yùn)算不同的是,隊(duì)列是在對頭進(jìn)行插入,而在隊(duì)尾完成數(shù)據(jù)元素的刪除,所以隊(duì)列的算法和適用的應(yīng)用問題與堆棧有很大的區(qū)別。隊(duì)列作為一類常用的數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于各種程序設(shè)計(jì)中。

第六章主要學(xué)習(xí)數(shù)組、系數(shù)矩陣和廣義表的基本概念、集中特殊矩陣的存儲結(jié)構(gòu)及基本運(yùn)算,在此基礎(chǔ)上學(xué)習(xí)特殊矩陣的計(jì)算算法與廣義表應(yīng)用等相關(guān)問題。通過本章的學(xué)習(xí),要求掌握特殊矩陣的壓縮存儲結(jié)構(gòu),在該存儲結(jié)構(gòu)下元素的定位方法,理解稀疏矩陣的計(jì)算和廣義表的存儲結(jié)構(gòu)及其基本運(yùn)算。了解矩陣與廣義表的相關(guān)應(yīng)用。

通過這章的學(xué)習(xí)和前幾章的比較,我了解到前幾章的線性結(jié)構(gòu)中的數(shù)據(jù)元素都是非結(jié)構(gòu)的原子類型,即每一個元素都是不可再分解的。本章討論的數(shù)組和廣義表等數(shù)據(jù)結(jié)構(gòu)可以看成是在前幾章線性結(jié)構(gòu)基礎(chǔ)上的一個擴(kuò)展:組成該數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)元素本身也是一個數(shù)據(jù)結(jié)構(gòu)。矩陣計(jì)算應(yīng)該數(shù)值計(jì)算方面的問題,由于矩陣和數(shù)組的關(guān)系以及特殊矩陣存儲結(jié)構(gòu)的復(fù)雜性,進(jìn)而使得特殊矩陣的存儲結(jié)構(gòu)和算法也表現(xiàn)出其特殊性,所以數(shù)據(jù)機(jī)構(gòu)課程應(yīng)該解決其計(jì)算問題。

第七章的學(xué)習(xí)重點(diǎn)是二叉樹的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和各種基本算法,在此基礎(chǔ)上介紹二叉樹的一些應(yīng)用問題。通過本章的學(xué)習(xí),我掌握了二叉樹概念及其性質(zhì)、二叉樹的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)等知識,掌握二叉樹的建立、遍歷、線索化等基本概念和算法及性能分析,能熟練應(yīng)用二叉樹這章結(jié)構(gòu)來解決一些實(shí)際問題,如哈夫曼樹及哈夫曼編碼、查找與排序(二叉樹排序)等問題。了解堆棧排序及其算法等知識。二叉樹是非線性數(shù)據(jù)結(jié)構(gòu),是樹形結(jié)構(gòu)的一種特殊形式。在現(xiàn)實(shí)生活有許多數(shù)據(jù)關(guān)系可抽象為樹或二叉樹的形式。本章中的二叉樹的概念及其性質(zhì)、二叉排序樹、存儲結(jié)構(gòu)、遍線索(化)、基本算法為重點(diǎn)內(nèi)容,二叉排序樹的應(yīng)用為難點(diǎn)內(nèi)容。

第八章的學(xué)習(xí)重點(diǎn)是樹和森林的數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析,樹和森林與二叉樹間的轉(zhuǎn)化算法等,在此基礎(chǔ)上介紹樹的應(yīng)用——b-樹。通過本章的學(xué)習(xí),我掌握了樹和森林的概念和性質(zhì)、數(shù)據(jù)結(jié)構(gòu)、樹的基本算法及性能分析、樹與二叉樹間的轉(zhuǎn)換及其算法,并能應(yīng)用b-樹來實(shí)現(xiàn)數(shù)據(jù)元素的動態(tài)查找。舒適一種非線性結(jié)構(gòu),它在二叉樹的基礎(chǔ)上做了更為一般化的擴(kuò)展,而森林是樹的集合。在樹結(jié)構(gòu)中,每一個元素最多只有一個前驅(qū),但可能有多個后繼?,F(xiàn)實(shí)生活中的家族關(guān)系、單位的組成結(jié)構(gòu)等,均可抽象為樹的形式。

第九章學(xué)習(xí)重點(diǎn)是散列結(jié)構(gòu)的相關(guān)知識,學(xué)習(xí)常用的散列函數(shù)和沖突處理方法,散列表的常用算法及其性能分析,通過本章的學(xué)習(xí),我掌握了散列結(jié)構(gòu)和散列函數(shù)的相關(guān)概念,掌握散列結(jié)構(gòu)的存儲(散列表)的相關(guān)概念,要求掌握散列沖突處理方法(散列法)的相關(guān)知識,并能靈活運(yùn)用散列法解決應(yīng)用問題。

散列結(jié)構(gòu)是使用散列函數(shù)建立數(shù)據(jù)結(jié)點(diǎn)關(guān)鍵字與存儲地址之間的對應(yīng)關(guān)系并提供多種當(dāng)數(shù)據(jù)節(jié)點(diǎn)存儲地址發(fā)生“沖突”時的處理方法而建立的一種數(shù)據(jù)結(jié)構(gòu)。散列結(jié)構(gòu)的查找等運(yùn)算效率是很高的,本章中的散列函數(shù)、散列結(jié)構(gòu)、散列表、散列法的基本概念和基本算法是重點(diǎn),線性探測散列算法、鏈地址法散列算法和散列法的應(yīng)用是難點(diǎn)。

第十章的學(xué)習(xí)重點(diǎn)是圖的定義及性質(zhì),圖的四種存儲結(jié)構(gòu),圖的兩種遍歷算法以及圖的典型應(yīng)用,包括最小生成樹、最短路徑、拓?fù)渑判蚝完P(guān)鍵路徑等。通過本章學(xué)習(xí),我掌握了圖的概念和基本性質(zhì),圖的存儲結(jié)構(gòu)(鄰接矩陣和鄰接表)及其基本算法、圖的遍歷及算法、圖的最小生成樹普利姆算法或者克魯斯卡爾算法、圖的最短路徑迪杰斯特拉算法和弗洛伊德算法、有向無環(huán)圖拓?fù)渑判蛩惴?。了解了圖的逆鄰接表、十字鏈表、鄰接多重表存儲結(jié)構(gòu)及其基本算法、關(guān)鍵路徑求解算法,并能靈活運(yùn)用圖的不同的數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復(fù)雜的應(yīng)用問題。

二.課程學(xué)習(xí)體會。

在學(xué)習(xí)開始的時候,老師就明確提出它不是一種計(jì)算機(jī)語言,不會介紹c語言的變成語言,而是通過學(xué)習(xí)可以設(shè)計(jì)出良好的算法,高效地組織數(shù)據(jù)。一個程序無論采用何種語言,其基本算法思想不會改變。聯(lián)系到在大一和大二上學(xué)期學(xué)習(xí)的c和c++語言,我深刻認(rèn)識到了這一點(diǎn)?!败浖_發(fā)好比寫作文,計(jì)算機(jī)語言提供了許多華麗的辭藻,而數(shù)據(jù)結(jié)構(gòu)則考慮如何將這些辭藻組織成一篇優(yōu)秀的文章來?!痹趯W(xué)習(xí)這門課中,要熟悉對算法思想的一些描述手段,包括文字描述、圖形描述和計(jì)算機(jī)語言描述等。因此,計(jì)算機(jī)語言基礎(chǔ)是必須的,因?yàn)樗峁┝艘环N重要的算法思想描述手段——機(jī)器可識別的描述。

這門課結(jié)束之后,我總結(jié)了學(xué)習(xí)中遇到的一些問題,最為突出的,書本上的知識與老師的講解都比較容易理解,但是當(dāng)自己采用剛學(xué)的知識點(diǎn)編寫程序時卻感到十分棘手,有時表現(xiàn)在想不到適合題意的算法,有時表現(xiàn)在算法想出來后,只能將書本上原有的程序段謄寫到自己的程序中再加以必要的連接以完成程序的編寫。針對這一情況,我會嚴(yán)格要求自己,熟練掌握算法思想,盡量獨(dú)立完成程序的編寫與修改工作,只有這樣,才能夠提高運(yùn)用知識,解決問題的能力。

1、建議在上課過程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識,也便于及時了解學(xué)生對知識點(diǎn)的掌握情況,同時有助于學(xué)生上課積極思考,不會開小差。

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

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

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇二

課程名稱:

學(xué)生學(xué)號:

所屬院部:

(理工類)。

學(xué)生姓名:

指導(dǎo)教師:——20學(xué)年第學(xué)期。

金陵科技學(xué)院教務(wù)處制。

實(shí)驗(yàn)報告書寫要求。

實(shí)驗(yàn)報告原則上要求學(xué)生手寫,要求書寫工整。若因課程特點(diǎn)需打印的,要遵照以下字體、字號、間距等的具體要求。紙張一律采用a4的紙張。

實(shí)驗(yàn)報告書寫說明。

實(shí)驗(yàn)報告中一至四項(xiàng)內(nèi)容為必填項(xiàng),包括實(shí)驗(yàn)?zāi)康暮鸵?;?shí)驗(yàn)儀器和設(shè)備;實(shí)驗(yàn)內(nèi)容與過程;實(shí)驗(yàn)結(jié)果與分析。各院部可根據(jù)學(xué)科特點(diǎn)和實(shí)驗(yàn)具體要求增加項(xiàng)目。

填寫注意事項(xiàng)。

(1)細(xì)致觀察,及時、準(zhǔn)確、如實(shí)記錄。(2)準(zhǔn)確說明,層次清晰。

(3)盡量采用專用術(shù)語來說明事物。

(4)外文、符號、公式要準(zhǔn)確,應(yīng)使用統(tǒng)一規(guī)定的名詞和符號。(5)應(yīng)獨(dú)立完成實(shí)驗(yàn)報告的書寫,嚴(yán)禁抄襲、復(fù)印,一經(jīng)發(fā)現(xiàn),以零分論處。

實(shí)驗(yàn)報告批改說明。

實(shí)驗(yàn)報告的批改要及時、認(rèn)真、仔細(xì),一律用紅色筆批改。實(shí)驗(yàn)報告的批改成績采用百分制,具體評分標(biāo)準(zhǔn)由各院部自行制定。

實(shí)驗(yàn)報告裝訂要求。

實(shí)驗(yàn)批改完畢后,任課老師將每門課程的每個實(shí)驗(yàn)項(xiàng)目的實(shí)驗(yàn)報告以自然班為單位、按學(xué)號升序排列,裝訂成冊,并附上一份該門課程的實(shí)驗(yàn)大綱。

實(shí)驗(yàn)項(xiàng)目名稱:順序表實(shí)驗(yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)1順序表。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

掌握順序表的定位、插入、刪除等操作。

二、實(shí)驗(yàn)儀器和設(shè)備。

vc6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

(1)編寫程序建立一個順序表,并逐個輸出順序表中所有數(shù)據(jù)元素的值。編寫主函數(shù)測試結(jié)果。

(2)編寫順序表定位操作子函數(shù),在順序表中查找是否存在數(shù)據(jù)元素x。如果存在,返回順序表中和x值相等的第1個數(shù)據(jù)元素的序號(序號從0開始編號);如果不存在,返回-1。編寫主函數(shù)測試結(jié)果。(3)在遞增有序的順序表中插入一個新結(jié)點(diǎn)x,保持順序表的有序性。

解題思路:首先查找插入的位置,再移位,最后進(jìn)行插入操作;從第一個元素開始找到第一個大于該新結(jié)點(diǎn)值x的元素位置i即為插入位置;然后將從表尾開始依次將元素后移一個位置直至元素i;最后將新結(jié)點(diǎn)x插入到i位置。

(4)刪除順序表中所有等于x的數(shù)據(jù)元素。

2、選做題。

(5)已知兩個順序表a和b按元素值遞增有序排列,要求寫一算法實(shí)現(xiàn)將a和b歸并成一個按元素值遞減有序排列的順序表(允許表中含有值相同的元素)。

程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

實(shí)驗(yàn)項(xiàng)目名稱:單鏈表實(shí)驗(yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)2單鏈表。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

1、實(shí)驗(yàn)?zāi)康摹?/p>

掌握單鏈表的定位、插入、刪除等操作。

2、實(shí)驗(yàn)要求。

(1)注意鏈表的空間是動態(tài)分配的,某結(jié)點(diǎn)不用之后要及時進(jìn)行物理刪除,以便釋放其內(nèi)存空間。

(2)鏈表不能實(shí)現(xiàn)直接定位,一定注意指針的保存,防止丟失。

二、實(shí)驗(yàn)儀器和設(shè)備。

visualc++6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

(1)編寫程序建立一個單鏈表,并逐個輸出單鏈表中所有數(shù)據(jù)元素。(2)在遞增有序的單鏈表中插入一個新結(jié)點(diǎn)x,保持單鏈表的有序性。

解題思路:首先查找插入的位置然后進(jìn)行插入操作;從第一個結(jié)點(diǎn)開始找到第一個大于該新結(jié)點(diǎn)值的結(jié)點(diǎn)即為插入位置;然后在找到的此結(jié)點(diǎn)之前插入新結(jié)點(diǎn);注意保留插入位置之前結(jié)點(diǎn)的指針才能完成插入操作。

(3)編寫實(shí)現(xiàn)帶頭結(jié)點(diǎn)單鏈表就地逆置的子函數(shù),并編寫主函數(shù)測試結(jié)果。

2、選做題。

已知指針la和lb分別指向兩個無頭結(jié)點(diǎn)單鏈表的首元結(jié)點(diǎn)。要求編一算法實(shí)現(xiàn),從表la中刪除自第i個元素起共len個元素后,將它們插入到表lb中第j個元素之前。程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

實(shí)驗(yàn)項(xiàng)目名稱:堆棧和隊(duì)列實(shí)驗(yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)3堆棧和隊(duì)列。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

(1)掌握應(yīng)用棧解決問題的方法。(2)掌握利用棧進(jìn)行表達(dá)式求和的算法。

(3)掌握隊(duì)列的存儲結(jié)構(gòu)及基本操作實(shí)現(xiàn),并能在相應(yīng)的應(yīng)用問題中正確選用它們。

二、實(shí)驗(yàn)儀器和設(shè)備。

visualc++6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

(1)判斷一個算術(shù)表達(dá)式中開括號和閉括號是否配對。(2)測試“漢諾塔”問題。

(3)假設(shè)稱正讀和反讀都相同的字符序列為”回文”,試寫一個算法判別讀入的一個以’@’為結(jié)束符的字符序列是否是“回文”。

2、選做題。

在順序存儲結(jié)構(gòu)上實(shí)現(xiàn)輸出受限的雙端循環(huán)隊(duì)列的入列和出列算法。設(shè)每個元素表示一個待處理的作業(yè),元素值表示作業(yè)的預(yù)計(jì)時間。入隊(duì)列采取簡化的短作業(yè)優(yōu)先原則,若一個新提交的作業(yè)的預(yù)計(jì)執(zhí)行時間小于隊(duì)頭和隊(duì)尾作業(yè)的平均時間,則插入在隊(duì)頭,否則插入在隊(duì)尾。程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

實(shí)驗(yàn)項(xiàng)目名稱:串實(shí)驗(yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)4串。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

掌握串的存儲及應(yīng)用。

二、實(shí)驗(yàn)儀器和設(shè)備。

visualc++6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

(1)編寫輸出字符串s中值等于字符ch的第一個字符的函數(shù),并用主函數(shù)測試結(jié)果。

(2)編寫輸出字符串s中值等于字符ch的所有字符的函數(shù),并用主函數(shù)測試結(jié)果。

解題思路:可以將第一題程序改進(jìn)成一個子函數(shù),在本題中循環(huán)調(diào)用。(3)設(shè)字符串采用單字符的鏈?zhǔn)酱鎯Y(jié)構(gòu),編程刪除串s從位置i開始長度為k的子串。

2、選做題。

假設(shè)以鏈結(jié)構(gòu)表示串,編寫算法實(shí)現(xiàn)將串s插入到串t中某個字符之后,若串t中不存在這個字符,則將串s聯(lián)接在串t的末尾。

提示:為提高程序的通用性,插入位置字符應(yīng)設(shè)計(jì)為從鍵盤輸入。程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

實(shí)驗(yàn)項(xiàng)目名稱:二叉樹實(shí)驗(yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)5二叉樹。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

(1)掌握二叉樹的生成,以及前、中、后序遍歷算法。(2)掌握應(yīng)用二叉樹遞歸遍歷思想解決問題的方法。

二、實(shí)驗(yàn)儀器和設(shè)備。

visualc++6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

(1)建立一棵二叉樹。對此樹進(jìn)行前序遍歷、中序遍歷及后序遍歷,輸出遍歷序列。

(2)在第一題基礎(chǔ)上,求二叉樹中葉結(jié)點(diǎn)的個數(shù)。(3)在第一題基礎(chǔ)上,求二叉樹中結(jié)點(diǎn)總數(shù)。(4)在第一題基礎(chǔ)上,求二叉樹的深度。

2、選做題。

已知一棵完全二叉樹存于順序表sa中,[1…]存儲結(jié)點(diǎn)的值。試編寫算法由此順序存儲結(jié)構(gòu)建立該二叉樹的二叉鏈表。

解題思路:根據(jù)完全二叉樹順序存儲的性質(zhì)來確定二叉樹的父子關(guān)系即“還原”了二叉樹,之后再按照二叉樹二叉鏈表的構(gòu)造方法進(jìn)行建立。完全二叉樹順序存儲的一個重要性質(zhì)為,第i個結(jié)點(diǎn)的左孩子是編號為2i的結(jié)點(diǎn),第i個結(jié)點(diǎn)的右孩子是編號為2i+1的結(jié)點(diǎn)。程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

實(shí)驗(yàn)項(xiàng)目名稱:圖實(shí)驗(yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)6圖。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

(1)熟練掌握圖的基本概念、構(gòu)造及其存儲結(jié)構(gòu)。

(2)熟練掌握對圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷的算法。

二、實(shí)驗(yàn)儀器和設(shè)備。

visualc++6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

(1)構(gòu)造一個無向圖(用鄰接矩陣表示存儲結(jié)構(gòu))。

(2)對上面所構(gòu)造的無向圖,進(jìn)行深度優(yōu)先遍歷和廣度優(yōu)先遍歷,輸出遍歷序列。

2、選做題。

采用鄰接表存儲結(jié)構(gòu),編寫一個判別無向圖中任意給定的兩個頂點(diǎn)之間是否存在一條長度為k的簡單路徑的算法。簡單路徑是指其頂點(diǎn)序列中不含有重復(fù)頂點(diǎn)的路徑。提示:兩個頂點(diǎn)及k值均作為參數(shù)給出。程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

實(shí)驗(yàn)項(xiàng)目名稱:排序?qū)嶒?yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)7排序。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

(1)熟練掌握希爾排序、堆排序、直接插入排序、起泡排序、快速排序、直接選擇排序、歸并排序和基數(shù)排序的基本概念。

(2)掌握以上各種排序的算法。區(qū)分以上不同排序的優(yōu)、缺點(diǎn)。

二、實(shí)驗(yàn)儀器和設(shè)備。

visualc++6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

用隨機(jī)數(shù)產(chǎn)生100000個待排序數(shù)據(jù)元素的關(guān)鍵字值。測試下列各排序函數(shù)的機(jī)器實(shí)際執(zhí)行時間(至少測試兩個):直接插入排序、希爾排序(增量為4,2,1)、冒泡排序、快速排序、直接選擇排序、二路歸并排序、堆排序和基于鏈?zhǔn)疥?duì)列的基數(shù)排序。

2、選做題。

假設(shè)含n個記錄的序列中,其所有關(guān)鍵字為值介于v和w之間的整數(shù),且其中很多關(guān)鍵字的值是相同的。則可按如下方法排序:另設(shè)數(shù)組number[v…w],令number[i]統(tǒng)計(jì)關(guān)鍵字為整數(shù)i的紀(jì)錄個數(shù),然后按number重排序列以達(dá)到有序。試編寫算法實(shí)現(xiàn)上述排序方法,并討論此種方法的優(yōu)缺點(diǎn)。程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

實(shí)驗(yàn)項(xiàng)目名稱:查找實(shí)驗(yàn)學(xué)時:2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時間:

實(shí)驗(yàn)8查找。

一、實(shí)驗(yàn)?zāi)康暮鸵蟆?/p>

(1)掌握順序表查找、有序表查找、索引順序表查找的各種算法。(2)掌握哈希表設(shè)計(jì)。

二、實(shí)驗(yàn)儀器和設(shè)備。

visualc++6.0。

三、實(shí)驗(yàn)內(nèi)容與過程(含程序清單及流程圖)。

1、必做題。

(1)在一個遞增有序的線性表中利用二分查找法查找數(shù)據(jù)元素x。

2、選做題。

(2)構(gòu)造一個哈希表,哈希函數(shù)采用除留余數(shù)法,哈希沖突解決方法采用鏈地址法。設(shè)計(jì)一個測試程序進(jìn)行測試。

提示:構(gòu)造哈希表只是完成查找的第一步,大家應(yīng)該掌握在哈希表上進(jìn)行查找的過程,可以試著編程序?qū)崿F(xiàn)。程序清單:

四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。

五、實(shí)驗(yàn)體會(遇到問題及解決辦法,編程后的心得體會)。

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇三

首先你要知道什么是數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的意義。這將是你學(xué)習(xí)的動力所在。計(jì)算機(jī)軟件都用到了數(shù)據(jù)結(jié)構(gòu)。所以,學(xué)好數(shù)據(jù)結(jié)構(gòu)對于你將來從事計(jì)算機(jī)編程類的工作有十分重要的作用。

數(shù)據(jù)結(jié)構(gòu)中的基本概念,你要一定清楚。平時要多看書,要在計(jì)算機(jī)上去調(diào)試程序,在調(diào)試的過程中,你才能發(fā)現(xiàn)自己的問題,然后及時解決。在上機(jī)調(diào)試的過程中,更要大膽嘗試,注重運(yùn)用。拿到一個題時,更要深入分析,嘗試用不同的算法去設(shè)計(jì)。當(dāng)然編程的時候,要注意格式。比如:變量一定要先定義后使用。變量的定義不要定義在中間。

算法與數(shù)據(jù)結(jié)構(gòu)是緊密聯(lián)系,所以你算法一定要會。如果你是學(xué)生,只需把課本上出現(xiàn)的搞懂就好了,比如線性表的插入,刪除,查找算法,它都是固定的。你就要理解,當(dāng)然你要學(xué)會畫圖。對于書中的內(nèi)容要熟悉。

數(shù)據(jù)結(jié)構(gòu)的大綱如下:線性表、棧和隊(duì)列,串、數(shù)組和廣義表、樹與森林、圖、還有就是查找和排序。簡單的總結(jié)一下也就是它的邏輯結(jié)構(gòu):線性結(jié)構(gòu)和非線性結(jié)構(gòu)。這些基本的內(nèi)容你如果搞懂了,你的數(shù)據(jù)結(jié)構(gòu)也就學(xué)好了。

要嚴(yán)格要求自己。在學(xué)習(xí)算法的過程中,你要想它為什么要這樣設(shè)計(jì)?它的優(yōu)點(diǎn)在哪里?想著去改進(jìn)算法,慢慢的的你的邏輯思維能力也就提高了。你會發(fā)現(xiàn)其實(shí)數(shù)據(jù)結(jié)構(gòu)也就那么回事,不是很難。

有不懂得地方要及時請教老師,不要不懂裝懂。不要放過任何一個細(xì)節(jié),因?yàn)槲业膶I(yè)就是計(jì)算機(jī),所以有很多都是深有體會。

注意:

一、認(rèn)真安排好你的時間。

首先你要清楚一周內(nèi)所要做的事情,然后制定一張作息時間表。在表上填上那些非花不可的時間,如吃飯、睡覺、上課、娛樂等。安排這些時間之后,選定合適的、固定的時間用于學(xué)習(xí),必須留出足夠的時間來完成正常的閱讀和課后作業(yè)。當(dāng)然,學(xué)習(xí)不應(yīng)該占據(jù)作息時間表上全部的空閑時間,總得給休息、業(yè)余愛好、娛樂留出一些時間,這一點(diǎn)對學(xué)習(xí)很重要。一張作息時間表也許不能解決你所有的問題,但是它能讓你了解如何支配你這一周的時間,從而使你有充足的時間學(xué)習(xí)和娛樂。

二、學(xué)習(xí)前先預(yù)習(xí)。

這就意味著在你認(rèn)真投入學(xué)習(xí)之前,先把要學(xué)習(xí)的內(nèi)容快速瀏覽一遍,了解學(xué)習(xí)的大致內(nèi)容及結(jié)構(gòu),以便能及時理解和消化學(xué)習(xí)內(nèi)容。當(dāng)然,你要注意輕重詳略,在不太重要的地方你可以花少點(diǎn)時間,在重要的地方,你可以稍微放慢學(xué)習(xí)進(jìn)程。

三、充分利用課堂時間。

學(xué)習(xí)成績好的學(xué)生很大程度上得益于在課堂上充分利用時間,這也意味著在課后少花些功夫。課堂上要及時配合老師,做好筆記來幫助自己記住老師講授的內(nèi)容,尤其重要的是要積極地獨(dú)立思考,跟得上老師的思維。

四、學(xué)習(xí)要有合理的規(guī)律。

課堂上做的筆記你要在課后及時復(fù)習(xí),不僅要復(fù)習(xí)老師在課堂上講授的重要內(nèi)容,還要復(fù)習(xí)那些你仍感模糊的認(rèn)識。如果你堅(jiān)持定期復(fù)習(xí)筆記和課本,并做一些相關(guān)的習(xí)題,你定能更深刻地理解這些內(nèi)容,你的記憶也會保持更久。定期復(fù)習(xí)能有效地提高你的考試成績。

五、一個安靜的、舒適的學(xué)習(xí)環(huán)境。

選擇某個地方作你的學(xué)習(xí)之處,這一點(diǎn)很重要。它可以是你的單間書房或教室或圖書館,但是它必須是舒適的,安靜而沒有干擾。當(dāng)你開始學(xué)習(xí)時,你應(yīng)該全神貫注于你的功課,切忌“身在曹營心在漢”。

六、樹立正確的考試觀。

平時測驗(yàn)的目的主要看你掌握功課程度如何,所以你不要弄虛作假,而應(yīng)心平氣和地對待它?;蛟S,你有一兩次考試成績不盡如人意,但是這不要緊,只要學(xué)習(xí)扎實(shí),認(rèn)真對待,下一次一定會考出好成績來。通過測驗(yàn),可讓你了解下一步學(xué)習(xí)更需要用功夫的地方,更有助于你把新學(xué)的知識記得牢固。

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇四

我是計(jì)算機(jī)系2006級本科生,在大二上學(xué)期選修了張銘老師的數(shù)據(jù)結(jié)構(gòu)與算法實(shí)驗(yàn)班。數(shù)據(jù)結(jié)構(gòu)與算法課是每一個計(jì)算機(jī)專業(yè)學(xué)生的必修課,從我目前所學(xué)習(xí)的后續(xù)課程,包括算法設(shè)計(jì)、編譯技術(shù)等課程來看,這門課是其非常重要的基礎(chǔ)課程之一。

我從初中就開始接觸高中的信息學(xué)奧林匹克競賽,對數(shù)據(jù)結(jié)構(gòu)與算法方面的相關(guān)知識接觸的比較早。張老師為了更有針對性地對具有不同基礎(chǔ)的學(xué)生進(jìn)行因材施教,開設(shè)了數(shù)據(jù)結(jié)構(gòu)算法實(shí)驗(yàn)班,我很榮幸地被批準(zhǔn)通過選修實(shí)驗(yàn)班的課。通過一個學(xué)期的學(xué)習(xí),我加深了對數(shù)據(jù)結(jié)構(gòu)與算法的相關(guān)知識的理解,并通過張老師細(xì)致地講解,將自己過去從高中競賽所學(xué)到的離散的、碎片式的知識點(diǎn)連貫地串了起來,形成了一套較為完整的知識體系。我想這對于我后續(xù)的學(xué)習(xí)和對更高層次數(shù)據(jù)結(jié)構(gòu)與算法知識的探索,都是大有裨益的。

我認(rèn)為,在這門課的學(xué)習(xí)過程中,張老師所引導(dǎo)我們掌握的不僅僅是知識點(diǎn)與問題的簡單聯(lián)系,而是進(jìn)行拓展性地思考和探索。例如樹的順序存儲,除了講解各種帶標(biāo)記的存儲方法以外,我們還討論了這些存儲方式中記錄的信息是不是都是必須的、如何用最少的標(biāo)記信息表示一棵樹等問題。這就讓我們對原本看似平凡的知識有更深刻的認(rèn)識。另外,我們所完成的作業(yè)和練習(xí)也都不是簡單的解題訓(xùn)練,很多問題都是帶有可研究性與可擴(kuò)展性的,甚至很多問題沒有單一的結(jié)論,這就引導(dǎo)我們創(chuàng)造性地應(yīng)用所學(xué)的知識去研究問題、解決問題。

張老師在實(shí)驗(yàn)班的課堂上不但注重基礎(chǔ)知識的講解,還會適當(dāng)介紹一些較為高級的數(shù)據(jù)結(jié)構(gòu)(例如伸展樹、后綴樹等),以及一些較新的算法研究成果。這些介紹不僅對于鞏固基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)有很強(qiáng)的促進(jìn)作用,還讓對我們往后更難的課程更有信心。事實(shí)上,我認(rèn)為算法與數(shù)據(jù)結(jié)構(gòu)在我們計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)中是無處不在的,圖論中的樹、圖模型,組合數(shù)學(xué)中模型的計(jì)數(shù),編譯技術(shù)中關(guān)于文法的分析、自動機(jī)模型,無一不包含數(shù)據(jù)結(jié)構(gòu)與算法的理論。能夠更快、更好地掌握后續(xù)這些課程的知識體系,于我在數(shù)據(jù)結(jié)構(gòu)與算法課中所學(xué)是分不開的。我是北大acm隊(duì)員之一,并于今年代表北京大學(xué)參加了第32屆acm-icpc國際大學(xué)生程序設(shè)計(jì)競賽全球總決賽,獲得了第13名。acm-icpc競賽十分注重選手對于模型抽象的能力、對于數(shù)據(jù)結(jié)構(gòu)與算法的理解以及編程能力。這門課程對我參加acm競賽無疑也是幫助甚大。它讓我更系統(tǒng)、透徹地理解了數(shù)據(jù)結(jié)構(gòu)與算法的相關(guān)知識,對于在賽場上的解題能力和解題速度都有很大的提高。總而言之,張老師的數(shù)據(jù)結(jié)構(gòu)與算法這門課程作為我的必修課之一,對于我計(jì)算機(jī)專業(yè)的學(xué)習(xí)是幫助很大并且影響深遠(yuǎn)的。

北京大學(xué)計(jì)算機(jī)系2006級本科生。

2008年4月14日。

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇五

(一)實(shí)驗(yàn)?zāi)康暮鸵螅?/p>

1.熟悉vc集成環(huán)境。

2.會定義線性表的順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)。

3.熟悉對線性表的基本操作,如插入、刪除等。

(二)實(shí)驗(yàn)內(nèi)容和原理或涉及的知識點(diǎn)(綜合性實(shí)驗(yàn)):

自己編寫程序?qū)崿F(xiàn)線性表的建立、插入、刪除等功能。

寫出線性表、順序表、鏈表的定義,簡單寫出主要算法的思路。

(三)實(shí)驗(yàn)條件:安裝有vc的計(jì)算機(jī)。

(四)實(shí)驗(yàn)設(shè)計(jì)方案。

2.鏈表的插入操作3.鏈表的刪除操作4.鏈表數(shù)據(jù)元素的訪問。

(五)實(shí)驗(yàn)過程、數(shù)據(jù)和實(shí)驗(yàn)結(jié)果記錄。

程序代碼(略)。

實(shí)驗(yàn)過程中輸入/輸出數(shù)據(jù)、程序運(yùn)行結(jié)果的記錄。(一定要有?。?。

第二次實(shí)驗(yàn)棧和隊(duì)列。

(一)實(shí)驗(yàn)?zāi)康暮鸵螅?/p>

(二)實(shí)驗(yàn)內(nèi)容和原理或涉及的知識點(diǎn)(綜合性實(shí)驗(yàn)):

寫出棧的定義,簡單寫出主要算法的思路。

(三)實(shí)驗(yàn)條件:安裝有vc的計(jì)算機(jī)。

(四)實(shí)驗(yàn)設(shè)計(jì)方案。

設(shè)計(jì)的算法有:1.初始化棧2.入棧3.出棧。

4.判斷棧是否為空5.十進(jìn)制轉(zhuǎn)換為八進(jìn)制。

(五)實(shí)驗(yàn)過程、數(shù)據(jù)和實(shí)驗(yàn)結(jié)果記錄。

程序代碼(略)。

實(shí)驗(yàn)過程中輸入/輸出數(shù)據(jù)、程序運(yùn)行結(jié)果的記錄。(一定要有?。?。

(一)實(shí)驗(yàn)?zāi)康暮鸵螅?/p>

1.熟練掌握二叉樹的結(jié)構(gòu),以及這種數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)2.會定義二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu)。

3.能實(shí)現(xiàn)二叉樹的建立、遍歷等功能,需要完成先序遍歷、中序遍歷和后序遍歷遞歸算法。

(二)實(shí)驗(yàn)內(nèi)容和原理或涉及的知識點(diǎn)(綜合性實(shí)驗(yàn)):

自己編寫程序?qū)崿F(xiàn)二叉樹的各種基本操作,如二叉樹的建立(頭插法或者尾插法),遍歷等寫出二叉樹的定義,簡單寫出主要算法的思路。

(三)實(shí)驗(yàn)條件:安裝有vc的計(jì)算機(jī)。

(四)實(shí)驗(yàn)設(shè)計(jì)方案。

(五)實(shí)驗(yàn)過程、數(shù)據(jù)和實(shí)驗(yàn)結(jié)果記錄。

程序代碼(略)。

實(shí)驗(yàn)過程中輸入/輸出數(shù)據(jù)、程序運(yùn)行結(jié)果的記錄。(一定要有?。?。

第四次實(shí)驗(yàn)。

查找。

(一)實(shí)驗(yàn)?zāi)康暮鸵螅?/p>

1.熟練掌握查找算法的基本思想,以及算法的適用條件。

2.會定義靜態(tài)查找表的順序結(jié)構(gòu),能實(shí)現(xiàn)順序查找、二分查找。

(二)實(shí)驗(yàn)內(nèi)容和原理或涉及的知識點(diǎn)(綜合性實(shí)驗(yàn)):

自己編寫程序?qū)崿F(xiàn)順序查找、二分查找。

寫出靜態(tài)查找表的定義,簡單寫出主要算法的思路。

(三)實(shí)驗(yàn)條件:安裝有vc的計(jì)算機(jī)。

(四)實(shí)驗(yàn)設(shè)計(jì)方案。

設(shè)計(jì)的算法有:1.建立靜態(tài)查找表2.順序查找。

3.建立有序的靜態(tài)查找表4.二分查找。

(五)實(shí)驗(yàn)過程、數(shù)據(jù)和實(shí)驗(yàn)結(jié)果記錄。

程序代碼(略)。

實(shí)驗(yàn)過程中輸入/輸出數(shù)據(jù)、程序運(yùn)行結(jié)果的記錄。(一定要有?。?。

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇六

數(shù)據(jù)結(jié)構(gòu)與算法是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)科學(xué)的核心課程,而且也已經(jīng)成為其他理工專業(yè)的熱門選修課。隨著高級語言的發(fā)展,數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)的研究和應(yīng)用中已展現(xiàn)出強(qiáng)大的生命力,它兼顧了諸多高級語言的特點(diǎn),是一種典型的結(jié)構(gòu)化程序設(shè)計(jì)語言,它處理能力強(qiáng),使用靈活方便,應(yīng)用面廣,具有良好的可移植性。通過學(xué)習(xí),先報告如下:

第一章的內(nèi)容主要包括有關(guān)數(shù)據(jù)、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法、算法實(shí)現(xiàn)、c語言使用中相關(guān)問題和算法分析等基本概念和相關(guān)知識。其中重點(diǎ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)、基本運(yùn)算及其相關(guān)應(yīng)用。其中重點(diǎn)一是順序表的定義、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算和性能分析等概念和相關(guān)知識。二是順序表的應(yīng)用、包括查找問題(簡單順序查找、二分查找、分塊查找)、排序問題(直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序、歸并排序)、字符處理問題(模式匹配)等內(nèi)容。本章重點(diǎn)和難點(diǎn)在查找和排序問題的算法思想上,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)、基本運(yùn)算及其實(shí)現(xiàn)以及鏈表的相關(guān)應(yīng)用問題,在此基礎(chǔ)上介紹了鏈串的相關(guān)知識。在應(yīng)用方面有多項(xiàng)式的相加問題、歸并問題、箱子排序問題和鏈表在字符處理方面的應(yīng)用問題等。本章未完全掌握的是循環(huán)鏈表的算法問題和c的描述。

第四章介紹在兩種不同的存儲結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧的相關(guān)知識,了解堆棧的相關(guān)應(yīng)用,掌握應(yīng)用堆棧來解決實(shí)際問題的思想及方法。本章主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和基本運(yùn)算算法及其性能分析。本章堆棧算法思想較為簡單,所以能較好掌握。

第五章主要介紹順序存儲和鏈接存儲方法下的兩種隊(duì)列、順序(循環(huán))隊(duì)列和鏈隊(duì)列的數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其性能分析以及應(yīng)用。順序隊(duì)列(重點(diǎn)是循環(huán)隊(duì)列)和鏈隊(duì)列的概念、數(shù)據(jù)類型描述、數(shù)據(jù)結(jié)構(gòu)和基本運(yùn)算算法及其性能分析等。本章同堆棧有點(diǎn)類似,算法思想較為簡單,所以能較好掌握;但難點(diǎn)重在循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問題。第六章“特殊矩陣、廣義表及其應(yīng)用”將學(xué)習(xí)數(shù)組、稀疏矩陣和廣義表的基本概念,幾種特殊矩陣的存儲結(jié)構(gòu)及其基本運(yùn)算,在此基礎(chǔ)上學(xué)習(xí)特殊矩陣的計(jì)算算法與廣義表應(yīng)用等相關(guān)問題。本章的重點(diǎn)是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)及其基本運(yùn)算算法。掌握了特殊矩陣的壓縮存儲結(jié)構(gòu),在該存儲結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計(jì)算和廣義表的存儲結(jié)構(gòu)。

第七章“二叉樹及其應(yīng)用”的知識結(jié)構(gòu)主要是:非線性結(jié)構(gòu)數(shù)據(jù)二叉樹的定義、性質(zhì)、邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及其各種基本運(yùn)算算法,包括二叉樹的建立、遍歷、線索化等算法。在此基礎(chǔ)上,介紹二叉樹的一些應(yīng)用問題,包括哈夫曼編碼問題、(平衡)二叉排序樹問題和堆排序問題等。

第八章“樹和森林及其應(yīng)用”介紹樹和森林的數(shù)據(jù)結(jié)構(gòu)、基本算法及其性能分析,樹和森林與二叉樹之間的轉(zhuǎn)換算法等,在此基礎(chǔ)上介紹樹的應(yīng)用---b-樹,應(yīng)用b-樹來實(shí)現(xiàn)數(shù)據(jù)元素的動態(tài)查找。本章基本掌握樹和森林的概念和性質(zhì)、數(shù)據(jù)結(jié)構(gòu)、樹的基本算法及性能分析,樹和二叉樹間的轉(zhuǎn)換及其算法,并用應(yīng)用b-樹來實(shí)現(xiàn)數(shù)據(jù)元素的動態(tài)查找未能掌握好。

第九章“散列結(jié)構(gòu)及其應(yīng)用”是邏輯結(jié)構(gòu)“集合型”的數(shù)據(jù)元素在散列存儲方法下的數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用知識內(nèi)容。主要介紹散列函數(shù)的概念、散列結(jié)構(gòu)的概念、散列存儲結(jié)構(gòu)的概念---散列表、散列函數(shù)和散列表中解決沖突的處理方法---開放定址法、鏈地址法以及散列表的基本算法及其性能分析。本章概念較為多,所以掌握不太好。

第十章“圖及其應(yīng)用”是邏輯結(jié)構(gòu)為“圖形”的數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用知識內(nèi)容,主要介紹圖的定義和基礎(chǔ)知識,圖的2種存儲結(jié)構(gòu)。圖的基本算法以及圖的典型應(yīng)用問題(最小生成樹、最短路徑、拓?fù)渑判蚝完P(guān)鍵路徑等)。

二、對各知識點(diǎn)的掌握情況。

我對各知識點(diǎn)的掌握情況總結(jié)如下:

第一章不太難,能基本掌握。但關(guān)系全書的時間性能分析有些未能全部掌握。第二章本章重點(diǎn)和難點(diǎn)在查找和排序問題的算法思想上,6種排序方法的性能比較。本章未掌握的為希爾排序、快速排序、歸并排序的時間復(fù)雜度分析。第三章,對鏈表掌握還好,對其數(shù)據(jù)結(jié)構(gòu)進(jìn)行了分析,有循環(huán)鏈表,掌握的不是很好,對其中一些用法不熟練。第四章堆棧,本章堆棧算法思想較為簡單,所以能較好掌握,但表達(dá)式計(jì)算問題未掌握好的。第五章的循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問題掌握的不是很好。第六章的重點(diǎn)是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)及其基本運(yùn)算算法。掌握了特殊矩陣的壓縮存儲結(jié)構(gòu),在該存儲結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計(jì)算和廣義表的存儲結(jié)構(gòu)。第七章對二叉樹掌握較好,其概念,存儲,遍歷有很好的掌握。就是對二叉排序樹有點(diǎn)生疏,它的生成算法不是很會。第八章樹樹與二叉樹之間的轉(zhuǎn)換,森林與二叉樹的轉(zhuǎn)換算法思想基本掌握。第九章散列的一些知識,沒有深入學(xué)習(xí),大概了解了散列存儲結(jié)構(gòu)散列表,散列函數(shù),沖突的處理方法。第十章了解了圖的逆鄰接表的存儲結(jié)構(gòu),關(guān)鍵路徑求解算法未能掌握好,不能靈活運(yùn)用圖的不同數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復(fù)雜的應(yīng)用問題。

三、學(xué)習(xí)體會。

通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,讓我對程序有了新的認(rèn)識,也有了更深的理解。同時,也讓我認(rèn)識到,不管學(xué)習(xí)什么,概念是基礎(chǔ),所有的知識框架都是建立在基礎(chǔ)概念之上的,所以,第一遍看課本要將概念熟記于心,然后構(gòu)建知識框架。并且,對算法的學(xué)習(xí)是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。在第二遍看課本的過程中,要注重對算法的掌握。對于一個算法,讀一遍可能能讀懂,但不可能完全領(lǐng)會其中的思想。掌握一個算法,并不是說將算法背過,而是掌握算法的思想。我們需要的是耐心。每看一遍就會有這一遍的收獲。讀懂算法之后,自己再默寫算法,寫到不會的地方,看看課本想想自己為什么沒有想到。對算法的應(yīng)用上,學(xué)習(xí)算法的目的是利用算法解決實(shí)際問題。會寫課本上已有的算法之后,可以借其思想進(jìn)行擴(kuò)展,逐步提高編程能力。

四、對課程教學(xué)的建議。

1、感覺上課時的氣氛不是很好,雖然大部分人都在聽,可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話題,可以是大家都非常關(guān)心的一些內(nèi)容,這樣既讓大家能在思考之余有一個放松,也能夠提高學(xué)生的學(xué)習(xí)積極性和學(xué)習(xí)效率。

2、學(xué)習(xí)的積極性很重要,有時候我們花了很長時間去寫實(shí)驗(yàn)報告,也很認(rèn)真的去理解去掌握,可是最后實(shí)驗(yàn)報告可能就只得了一個c,抄的人反而得a,這樣的話很容易打擊學(xué)生的積極性,在后面的實(shí)驗(yàn)報告中沒動力再去認(rèn)真寫。所以希望老師能在這方面有所調(diào)整。

3、雖然講課的時間很緊,但是還是希望老師能在講述知識點(diǎn)的時候能運(yùn)用實(shí)際的調(diào)試程序來給我們講解,這樣的話能讓我們對這些內(nèi)容有更深刻的印象和理解。

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇七

為了順利完成實(shí)驗(yàn)教學(xué)任務(wù),確保人身、設(shè)備的安全,培養(yǎng)嚴(yán)謹(jǐn)、踏實(shí)、實(shí)事求是的科學(xué)作風(fēng)和愛護(hù)國家財(cái)產(chǎn)的優(yōu)良品質(zhì),特制定以下實(shí)驗(yàn)規(guī)則:

1、實(shí)驗(yàn)前必須充分預(yù)習(xí),完成指定的預(yù)習(xí)任務(wù)。預(yù)習(xí)要求如下:

(1)認(rèn)真閱讀指導(dǎo)書,進(jìn)行必要的設(shè)計(jì)與計(jì)算。(2)熟悉實(shí)驗(yàn)內(nèi)容。

(3)預(yù)先復(fù)習(xí),并按要求編寫程序。(4)未完成預(yù)習(xí)任務(wù)者不得進(jìn)入實(shí)驗(yàn)室。

2、遵守以下紀(jì)律:

(1)在實(shí)驗(yàn)室不得做和實(shí)驗(yàn)無關(guān)的事情。

(2)進(jìn)行任課老師指定內(nèi)容以外的實(shí)驗(yàn),必須經(jīng)指導(dǎo)教師同意。(3)遵守紀(jì)律,不遲到。

(4)保持實(shí)驗(yàn)室內(nèi)安靜、整潔,愛護(hù)公物,不許亂寫亂畫。

實(shí)驗(yàn)環(huán)境。

本實(shí)驗(yàn)在386以上的微機(jī)上進(jìn)行,運(yùn)行環(huán)境為vc6.0。

實(shí)驗(yàn)報告要求。

1、實(shí)驗(yàn)題目2.實(shí)驗(yàn)?zāi)康?.實(shí)驗(yàn)環(huán)境。

4.實(shí)驗(yàn)內(nèi)容與完成情況(可以附上自主設(shè)計(jì)的源程序)5.出現(xiàn)的問題及對問題的解決方案6.實(shí)驗(yàn)思考:(學(xué)生對本次實(shí)驗(yàn)的收獲的總結(jié))。

實(shí)驗(yàn)一單鏈表。

(一)一、實(shí)驗(yàn)?zāi)康摹?/p>

掌握線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)及其基本操作。

二、預(yù)習(xí)要求。

1、看懂書上的算法,深入理解鏈表的物理存儲模式和邏輯模式。

2、根據(jù)要求,編寫程序準(zhǔn)備上機(jī)調(diào)試。

三、實(shí)驗(yàn)內(nèi)容。

實(shí)現(xiàn)一個簡單的學(xué)生信息管理系統(tǒng),該系統(tǒng)的功能有:

1、利用單鏈表建立學(xué)生基本信息表。

2、瀏覽每個學(xué)生的信息。

3、根據(jù)學(xué)號查詢某個學(xué)生的基本信息。

4、添加學(xué)生信息到單鏈表中。

5、刪除一個學(xué)生的信息。

四、實(shí)現(xiàn)提示。

設(shè)計(jì)結(jié)點(diǎn)的結(jié)構(gòu)體類型,包括學(xué)生的學(xué)號、姓名、年齡、性別;要求設(shè)計(jì)一個簡單的菜單界面,根據(jù)需要選擇所要進(jìn)行的操作;構(gòu)造函數(shù),每一個函數(shù)實(shí)現(xiàn)上述的一個功能。

實(shí)驗(yàn)二單鏈表。

(二)一、實(shí)驗(yàn)?zāi)康摹?/p>

掌握線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)及其基本操作。

二、預(yù)習(xí)要求。

1、看懂書上的算法,深入理解鏈表的物理存儲模式和邏輯模式。

2、根據(jù)要求,編寫程序準(zhǔn)備上機(jī)調(diào)試。

三、實(shí)驗(yàn)內(nèi)容。

1、實(shí)現(xiàn)單鏈表的就地逆置。

2、建立兩個非遞減有序單鏈表,然后合并成一個非遞減鏈表。

3、建立兩個非遞減有序單鏈表,然后合并成一個非遞增鏈表。

4、編寫一個主函數(shù),調(diào)試上述算法。

四、選做題、思考題。

1、如何用帶表頭結(jié)點(diǎn)的單鏈表作為多項(xiàng)式的存儲表示,實(shí)現(xiàn)兩個多項(xiàng)式的相加。

2、約毖夫環(huán)的實(shí)現(xiàn)。

3、如何利用文件實(shí)現(xiàn)學(xué)生信息的存取。

實(shí)驗(yàn)三棧。

一、實(shí)驗(yàn)?zāi)康摹?/p>

深入了解并掌握棧的特性及其在實(shí)際中的應(yīng)用;熟練掌握棧的算法實(shí)現(xiàn);運(yùn)用棧操作求解實(shí)際問題。

二、預(yù)習(xí)要求。

1、看懂書上的算法,深入理解棧的特性和存儲結(jié)構(gòu),以便在實(shí)際問題背景下靈活運(yùn)用。

2、根據(jù)要求,編寫程序準(zhǔn)備上機(jī)調(diào)試。

三、實(shí)驗(yàn)內(nèi)容。

利用棧實(shí)現(xiàn)數(shù)據(jù)的分類,要求當(dāng)輸入為偶數(shù)時進(jìn)棧1,當(dāng)輸入為奇數(shù)時進(jìn)棧2,最后分別從棧1和棧2輸出偶數(shù)和奇數(shù)序列。

四、實(shí)現(xiàn)提示。

1、開辟一個連續(xù)的存儲空間,實(shí)現(xiàn)兩個棧順序存儲空間的共享;分別在兩端設(shè)置棧頂指針,并按要求實(shí)現(xiàn)棧操作。

2、采用順序存儲實(shí)現(xiàn)棧的初始化、入棧、出棧操作。

五、選做題、思考題。

1、兩??臻g共享時,棧滿的條件是什么?

2、為停車場編制進(jìn)行管理的模擬程序(習(xí)題集p96,2.1)。

3、編寫程序,利用棧實(shí)現(xiàn)表達(dá)式求值。

實(shí)驗(yàn)四二叉樹。

一、實(shí)驗(yàn)?zāi)康摹?/p>

通過實(shí)踐掌握二叉樹的存儲結(jié)構(gòu)和遍歷思想;掌握二叉樹的常見算法的程序?qū)崿F(xiàn)。

二、預(yù)習(xí)要求。

二叉樹的三種遍歷方法。

三、實(shí)驗(yàn)內(nèi)容。

1、輸入字符序列,建立二叉鏈表。

2、利用棧,編寫非遞歸算法,編程實(shí)現(xiàn)二叉樹的中序遍歷。

3、求二叉樹的葉子結(jié)點(diǎn)個數(shù)。

4、在主函數(shù)中設(shè)計(jì)一個簡單的菜單,分別調(diào)試上述算法。

四、選做題、思考題。

1、如何實(shí)現(xiàn)二叉樹的后序遍歷(非遞歸)。

2、如何求二叉樹的高度。

實(shí)驗(yàn)五最短路徑(旅游景點(diǎn)導(dǎo)游咨詢模擬)。

一、實(shí)驗(yàn)?zāi)康摹?/p>

利用圖的最短路徑原理為用戶提供路徑咨詢,掌握求最短路徑的算法并編程實(shí)現(xiàn)。

二、預(yù)習(xí)要求。

學(xué)習(xí)了解圖的存儲結(jié)構(gòu),掌握求最短路徑的兩種算法。

三、實(shí)驗(yàn)內(nèi)容。

設(shè)計(jì)一個旅游景點(diǎn)導(dǎo)游模擬程序,為來訪的客人提供景點(diǎn)最短路徑的信息查詢服務(wù),任意選取n城市,構(gòu)成一個有向帶權(quán)圖,圖中頂點(diǎn)表示城市,邊上的權(quán)值表示兩點(diǎn)間的距離,根據(jù)用戶指定的始點(diǎn)和終點(diǎn)輸出相應(yīng)的最短路徑。

四、實(shí)現(xiàn)提示。

咨詢以用戶和計(jì)算機(jī)的對話方式進(jìn)行,由用戶輸入起始點(diǎn)和終點(diǎn),輸出信息:最短路徑是多少?并指出所經(jīng)過的城市。存儲結(jié)構(gòu)可選用鄰接矩陣。

五、選做題、思考題。

1.如何實(shí)現(xiàn)對城市信息進(jìn)行編輯(如:添加或刪除)的功能。

2.用鄰接表作存儲結(jié)構(gòu),求一指定景點(diǎn)出發(fā),到其余各景點(diǎn)的最短路徑。

實(shí)驗(yàn)六內(nèi)部排序。

一、實(shí)驗(yàn)?zāi)康摹?/p>

直觀感受算法的關(guān)鍵字比較次數(shù)和關(guān)鍵字移動次數(shù)。

二、預(yù)習(xí)要求。

1、常見的排序算法(插入排序、交換排序、選擇排序、歸并排序、基數(shù)排序等)的思想、特點(diǎn)及其適用條件。

2、根據(jù)要求,編寫程序準(zhǔn)備上機(jī)調(diào)試。

三、實(shí)驗(yàn)內(nèi)容。

1、對直接插入排序和簡單選擇排序算法進(jìn)行關(guān)鍵字比較次數(shù)和關(guān)鍵字移動次數(shù)的比較。

2、利用鏈?zhǔn)酱鎯Y(jié)構(gòu),編寫程序,實(shí)現(xiàn)直接插入排序和冒泡排序。

四、實(shí)現(xiàn)提示。

測試數(shù)據(jù)可以為幾組典型的數(shù)據(jù):正序、逆序、亂序。

五、選做題、思考題。

1、快速排序算法的非遞歸實(shí)現(xiàn)。

2、結(jié)合實(shí)驗(yàn),理解針對不同待排元素的特點(diǎn)而選擇不同排序方法的重要性。

3、如何對本實(shí)驗(yàn)進(jìn)行時間、空間的復(fù)雜度分析。

算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告篇八

婚姻狀況:未婚民族:漢族。

誠信徽章:未申請身高:157cm。

人才測評:未測評體重:

人才類型:在校學(xué)生。

應(yīng)聘職位:幼教/保育員,家教,銷售主管/銷售代表/客戶代表。

工作年限:1職稱:

求職類型:兼職可到職日期:隨時

月薪要求:面議希望工作地區(qū):天河區(qū),越秀區(qū),廣州。

工作經(jīng)歷。

無起止年月:-10~-05。

公司性質(zhì):所屬行業(yè):

擔(dān)任職位:作業(yè)指導(dǎo)。

工作描述:輔導(dǎo)小學(xué)生作業(yè),照顧小學(xué)生。

擔(dān)任職位:地鐵志愿者。

工作描述:

畢業(yè)院校:廣東交通職業(yè)技術(shù)學(xué)院。

最高學(xué)歷:大專獲得學(xué)位:畢業(yè)日期:-06

專業(yè)一:軟件技術(shù)專業(yè)二:

起始年月終止年月學(xué)校(機(jī)構(gòu))所學(xué)專業(yè)獲得證書證書編號。

語言能力。

外語:英語良好粵語水平:一般。

其它外語能力:

國語水平:優(yōu)秀。

工作能力及其他專長。

個人自傳。

您可能關(guān)注的文檔