數(shù)據(jù)結(jié)構(gòu)與算法心得大全(16篇)

字號:

    充實(shí)自己,為未來打下堅(jiān)實(shí)基礎(chǔ)。寫總結(jié)時(shí)要注重語言的簡潔明了,讓讀者一目了然。閱讀總結(jié)范文可以幫助我們擴(kuò)展自己的知識面,了解不同行業(yè)和領(lǐng)域的發(fā)展動態(tài)和趨勢。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇一
    數(shù)據(jù)結(jié)構(gòu)與算法是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)科學(xué)的核心課程,而且也已經(jīng)成為其他理工專業(yè)的熱門選修課。總的來說感觸還是比較深的,剛開始上的時(shí)候還蠻簡單的,越到后面感覺越難,算法也更復(fù)雜了,有時(shí)候甚至聽不懂,老師上課時(shí)講的也蠻快的,所以只能靠課下下功夫了。下面是我對本學(xué)期學(xué)習(xí)這門課的總結(jié)。
    第一章的數(shù)據(jù)結(jié)構(gòu)和算法的引入,介紹了數(shù)據(jù)和數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法描述工具、算法和算法評價(jià)四個(gè)方面的知識。
    第二章具體地介紹了順序表的概念、基本運(yùn)算及其應(yīng)用?;具\(yùn)算有:初始化表、求表長、排序、元素的查找、插入及刪除等。元素查找方法有:簡單順序查找、二分查找和分塊查找。排序方法有:直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序及歸并排序等。最后介紹了順序串的概念,重點(diǎn)在于串的模式匹配。
    第三章主要介紹的是線性邏輯結(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)、二叉樹的遍歷算法、線索二叉樹、二叉樹的應(yīng)用(哈夫曼樹、二叉排序樹、堆和堆排序、基本算法)。基本算法包括二叉樹的建立、遍歷、線索化等算法。在此基礎(chǔ)上,介紹二叉樹的一些應(yīng)用問題,包括哈夫曼編碼問題、(平衡)二叉排序樹問題和堆排序問題等。
    第八章說的是樹和森林,首先我們要知道樹與二叉樹是不同的概念。課本介紹了樹和森林的概念、遍歷和存儲結(jié)構(gòu),還有樹、森林和二叉樹的相互關(guān)系,樹或森林怎樣轉(zhuǎn)化成二叉樹,二叉樹又如何轉(zhuǎn)換為樹和森林等算法。
    第九章“散列結(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)及其基本算法、圖的遍歷及算法、有向圖的連通性和最小生成樹、圖的最小生成樹、非連通圖的生成森林算法、最短路徑、有向無環(huán)圖及其應(yīng)用。
    二、對各知識點(diǎn)的掌握情況。
    我對各知識點(diǎn)的掌握情況總結(jié)如下:
    對于第一章對數(shù)據(jù)結(jié)構(gòu)的概念理解頗深,大概是每次都要談?wù)摰桨伞λ惴ǖ臅r(shí)間性能,空間性能基本了解。這些在后面的章節(jié)都會有運(yùn)用。第二章本章重點(diǎn)和難點(diǎn)在查找和排序問題的算法思想上,6種排序方法的性能比較。本章未掌握的為希爾排序、快速排序、歸并排序的時(shí)間復(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í)體會。
    剛剛接觸這門課時(shí),看到課本中全是算法,當(dāng)時(shí)就暈了,因?yàn)槲业腸語言學(xué)的不好,我擔(dān)心會影響這門課的學(xué)習(xí),后來上課時(shí)老師說學(xué)習(xí)這門課的基礎(chǔ)是c語言,所以我當(dāng)時(shí)就決定一定要好好補(bǔ)補(bǔ),爭取不被拖后腿,在學(xué)習(xí)這門課的期間,也遇到了不少問。但是通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,讓我對程序有了新的認(rèn)識,也有了更深的理解。同時(shí),也讓我認(rèn)識到,不管學(xué)習(xí)什么,概念是基礎(chǔ),所有的知識框架都是建立在基礎(chǔ)概念之上的,所以,第一遍看課本要將概念熟記于心,然后構(gòu)建知識框架。并且,對算法的學(xué)習(xí)是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。在第二遍看課本的過程中,要注重對算法的掌握。對于一個(gè)算法,讀一遍可能能讀懂,但不可能完全領(lǐng)會其中的思想。掌握一個(gè)算法,并不是說將算法背過,而是掌握算法的思想。我們需要的是耐心。每看一遍就會有這一遍的收獲。讀懂算法之后,自己再默寫算法,寫到不會的地方,看看課本想想自己為什么沒有想到。對算法的應(yīng)用上,學(xué)習(xí)算法的目的是利用算法解決實(shí)際問題。會寫課本上已有的算法之后,可以借其思想進(jìn)行擴(kuò)展,逐步提高編程能力。
    四、對課程教學(xué)的建議。
    1、課程課時(shí)較緊,課堂上的練習(xí)時(shí)間較少,講解的東西越多,頭腦有時(shí)就很混亂。
    2、感覺上課時(shí)的氣氛不是很好,雖然大部分人都在聽,可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話題,可以是大家都非常關(guān)心的一些內(nèi)容,這樣既讓大家能在思考之余有一個(gè)放松,也能夠提高學(xué)生的學(xué)習(xí)積極性和學(xué)習(xí)效率。
    3、學(xué)習(xí)的積極性很重要,有時(shí)候我們花了很長時(shí)間去寫實(shí)驗(yàn)報(bào)告,也很認(rèn)真的去理解去掌握,可是最后實(shí)驗(yàn)報(bào)告可能就只得了一個(gè)c,抄的人反而得a,這樣的話很容易打擊學(xué)生的積極性,在后面的實(shí)驗(yàn)報(bào)告中沒動力再去認(rèn)真寫。所以希望老師能在這方面有所調(diào)整。
    4、雖然講課的時(shí)間很緊,但是還是希望老師能在講述知識點(diǎn)的時(shí)候能運(yùn)用實(shí)際的調(diào)試程序來給我們講解,這樣的話能讓我們對這些內(nèi)容有更深刻的印象和理解。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇二
    (一)課程性質(zhì)。
    《數(shù)據(jù)結(jié)構(gòu)》是一門專業(yè)基礎(chǔ)課,在計(jì)算機(jī)軟件的各個(gè)領(lǐng)域中均會使用到數(shù)據(jù)結(jié)構(gòu)的有關(guān)知識。本課程的先修課程為c程序設(shè)計(jì)或c++程序設(shè)計(jì)。
    (二)教學(xué)目的。
    學(xué)會從問題入手,分析研究計(jì)算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應(yīng)用所涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲結(jié)構(gòu)及其相應(yīng)的操作算法,并初步掌握時(shí)間和空間分析技術(shù)。另一方面,本課程的學(xué)習(xí)過程也是進(jìn)行復(fù)雜程序設(shè)計(jì)的訓(xùn)練過程,要求學(xué)生會書寫符合軟件工程規(guī)范的文件,編寫的程序代碼應(yīng)結(jié)構(gòu)清晰、正確易讀,能上機(jī)調(diào)試并排除錯(cuò)誤。
    (三)教學(xué)時(shí)數(shù)。
    課堂講授每周4學(xué)時(shí),18周,共72學(xué)時(shí)。
    (四)教學(xué)方法。
    本課程將采用課堂講授及課堂討論相結(jié)合的交互式教學(xué)法,同時(shí)輔以必要的上機(jī)操作實(shí)踐。
    (五)面向?qū)I(yè)。
    計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)。
    二、教學(xué)內(nèi)容。
    第一章緒論。
    (一)教學(xué)目的要求。
    介紹數(shù)據(jù)結(jié)構(gòu)的一些基本概念,算法的時(shí)間復(fù)雜度和空間復(fù)雜度的分析方法,抽象數(shù)據(jù)類型的定義和使用以及算法的描述方法。掌握數(shù)據(jù)結(jié)構(gòu)的一些基本概念,掌握算法的時(shí)間復(fù)雜度和空間復(fù)雜度的分析方法,了解抽象數(shù)據(jù)類型的定義和使用,了解算法的描述方法。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:數(shù)據(jù)結(jié)構(gòu)的一些基本概念:數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)邏輯結(jié)構(gòu)、數(shù)據(jù)存儲結(jié)構(gòu)、數(shù)據(jù)類型、算法等。抽象數(shù)據(jù)類型。算法時(shí)間復(fù)雜度和空間復(fù)雜度的分析。
    教學(xué)重點(diǎn):有關(guān)數(shù)據(jù)結(jié)構(gòu)的各個(gè)名詞和術(shù)語的含義,以及語句頻度和時(shí)間復(fù)雜度、空間復(fù)雜度的估算。
    教學(xué)難點(diǎn):算法時(shí)間復(fù)雜度和空間復(fù)雜度的分析。
    第一節(jié)。
    一、非數(shù)值計(jì)算。
    第二節(jié)。
    一、數(shù)據(jù)。
    三、數(shù)據(jù)類型。
    四、抽象數(shù)據(jù)類型。
    五、多型數(shù)據(jù)類型。
    第三節(jié)。
    一、固有數(shù)據(jù)類型。
    基本概念和術(shù)語什么是數(shù)據(jù)結(jié)構(gòu)。
    二、數(shù)據(jù)抽象。
    三、抽象數(shù)據(jù)類型的描述語言。
    第四節(jié)。
    一、算法。
    二、算法設(shè)計(jì)的要求。
    三、算法效率的度量。
    四、算法的存儲空間需求。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    4學(xué)時(shí)。
    第二章線性表。
    (一)教學(xué)目的與要求。
    介紹線性表的基本概念和類型定義,對順序表和單鏈表的常用操作方法及其程序?qū)崿F(xiàn),循環(huán)鏈表和雙向鏈表的定義和它的插入、刪除等操作方法。掌握線性表的基本概念和類型定義;熟練掌握對順序表和單鏈表的常用操作方法及其程序?qū)崿F(xiàn);掌握循環(huán)鏈表和雙向鏈表的定義和它的插入、刪除等操作方法。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:線性表的基本概念和類型定義,線性表的順序存儲結(jié)構(gòu),線性表的鏈接存儲結(jié)構(gòu):(1)單鏈表的查找、插入和刪除;(2)循環(huán)鏈表;(3)雙向鏈表。
    教學(xué)重點(diǎn):在順序表和鏈表上各種基本算法的實(shí)現(xiàn)及相關(guān)的時(shí)間性能分析。
    教學(xué)難點(diǎn):用所學(xué)的基本知識設(shè)計(jì)有效算法解決與線性表相關(guān)的應(yīng)用問題。鏈表要分清鏈表中指針p和結(jié)點(diǎn)*p之間的對應(yīng)關(guān)系,區(qū)分鏈表中的頭結(jié)點(diǎn)、頭指針以及循環(huán)鏈表、雙向鏈表的特點(diǎn)等。
    第一節(jié)。
    一、線性表的定義。
    二、線性表的基本操作。
    第二節(jié)。
    一、順序表。
    二、順序表上基本運(yùn)算的實(shí)現(xiàn)。
    三、順序表應(yīng)用舉例。
    第三節(jié)。
    一、線性鏈表。
    二、循環(huán)鏈表。
    三、雙向鏈表。
    四、靜態(tài)鏈表。
    第四節(jié)一、一元多項(xiàng)式的數(shù)學(xué)表示二、一元多項(xiàng)式的計(jì)算機(jī)表示。
    三、抽象數(shù)據(jù)類型:一元多項(xiàng)式的定義。
    四、抽象數(shù)據(jù)類型:一元多項(xiàng)式的存儲結(jié)構(gòu)。
    五、抽象數(shù)據(jù)類型:一元多項(xiàng)式的基本操作算法實(shí)現(xiàn)。
    (三)教學(xué)方法與形式。
    一元多項(xiàng)式的表示及相加線性表的鏈?zhǔn)酱鎯Ρ硎竞蛯?shí)現(xiàn)線性表的順序存儲表示和實(shí)現(xiàn)。
    線性表的類型定義算法和算法分析課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    8學(xué)時(shí)。
    第三章棧和隊(duì)列。
    (一)教學(xué)目的與要求。
    介紹棧和隊(duì)列的定義,順序和鏈接存儲的棧和隊(duì)列的各種運(yùn)算的方法及其程序?qū)崿F(xiàn)。掌握棧和隊(duì)列的定義,熟練掌握順序和鏈接存儲的棧和隊(duì)列的各種運(yùn)算的方法及其程序?qū)崿F(xiàn)。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:棧的類型定義,棧的順序存儲和鏈接存儲的表示,在棧的順序存儲和鏈接存儲上進(jìn)行各種棧操作的算法,棧的應(yīng)用舉例,隊(duì)列的類型定義,隊(duì)列的順序存儲(循環(huán)隊(duì))和鏈接存儲表示及各種操作的實(shí)現(xiàn)算法。
    教學(xué)重點(diǎn):棧和隊(duì)列在兩種存儲結(jié)構(gòu)上實(shí)現(xiàn)的基本運(yùn)算。教學(xué)難點(diǎn):遞歸的實(shí)現(xiàn)、循環(huán)隊(duì)列中對邊界條件的處理。
    第一節(jié)。
    一、抽象數(shù)據(jù)類型棧的定義。
    二、棧的表示和實(shí)現(xiàn)。
    第二節(jié)。
    一、數(shù)制轉(zhuǎn)換。
    二、括號匹配的檢驗(yàn)。
    三、表達(dá)式求值。
    第三節(jié)。
    一、函數(shù)調(diào)用與棧。
    二、遞歸調(diào)用棧的變化。
    第四節(jié)。
    一、抽象數(shù)據(jù)類型隊(duì)列的定義。
    二、鏈隊(duì)列--隊(duì)列的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)。
    三、循環(huán)隊(duì)列--隊(duì)列的順序表示和實(shí)現(xiàn)。
    第五節(jié)。
    一、優(yōu)先級隊(duì)列的概念。
    二、優(yōu)先級隊(duì)列的存儲表示和實(shí)現(xiàn)。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    4學(xué)時(shí)。
    第四章串。
    (一)教學(xué)目的與要求。
    介紹串的基本概念和操作,串的存儲結(jié)構(gòu)以及基本操作的算法實(shí)現(xiàn)。掌握串的基本概念和操作,掌握串的存儲結(jié)構(gòu)以及基本操作的算法實(shí)現(xiàn)。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:串的類型定義,串的表示和實(shí)現(xiàn),正文模式匹配,正文編輯——串操作應(yīng)用舉例串的類型定義。
    教學(xué)重點(diǎn):串類型定義中各基本操作的定義以及串的實(shí)現(xiàn)方法。教學(xué)難點(diǎn):利用串的基本操作來實(shí)現(xiàn)串的其它操作。
    優(yōu)先級隊(duì)列隊(duì)列棧與遞歸的實(shí)現(xiàn)棧的應(yīng)用舉例。
    棧
    第一節(jié)。
    一、串的定義。
    二、串的基本操作。
    第二節(jié)。
    一、定長順序存儲表示。
    二、堆分配存儲表示。
    三、串的塊鏈存儲表示。
    四、字符串操作的實(shí)現(xiàn)。
    第三節(jié)。
    二、模式匹配的一種改進(jìn)算法。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    4學(xué)時(shí)。
    串的類型定義。
    串的表示和實(shí)現(xiàn)。
    字符串的模式匹配。
    一、求子串位置的定位函數(shù)index(s,t,pos)。
    第五章數(shù)組和廣義表。
    (一)教學(xué)目的。
    介紹數(shù)組的基本概念和基本操作的算法實(shí)現(xiàn);稀疏矩陣的定義和各種存儲結(jié)構(gòu),稀疏矩陣的轉(zhuǎn)置和相加的方法并了解其算法;廣義表的定義、存儲結(jié)構(gòu)和求廣義表的長度及深度的算法,建立廣義表和輸出廣義表的方法并了解其算法。掌握數(shù)組的基本概念和基本操作的算法實(shí)現(xiàn);掌握稀疏矩陣的定義和各種存儲結(jié)構(gòu),掌握稀疏矩陣的轉(zhuǎn)置和相加的方法并了解其算法;掌握廣義表的定義、存儲結(jié)構(gòu)和求廣義表的長度及深度的算法,掌握建立廣義表和輸出廣義表的方法并了解其算法。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:稀疏矩陣的定義、存儲和運(yùn)算,廣義表的定義、存儲和運(yùn)算串的類型定義。教學(xué)重點(diǎn):特殊矩陣的壓縮存儲,以及稀疏矩陣的三元組順序表示。教學(xué)難點(diǎn):特殊矩陣的壓縮存儲,以及稀疏矩陣的三元組順序表示。
    第一節(jié)第二節(jié)。
    一、數(shù)組的存儲方式。
    二、數(shù)組元素存儲位置的計(jì)算。
    三、基本操作的實(shí)現(xiàn)。
    第三節(jié)。
    一、特殊矩陣。
    二、稀疏矩陣。
    第四節(jié)。
    一、廣義表的基本概念。
    二、廣義表的三個(gè)重要結(jié)論。
    第五節(jié)。
    一、頭尾鏈表存儲表示。
    二、擴(kuò)展線性鏈表存儲表示。
    第六節(jié)。
    一、求廣義表的深度。
    二、復(fù)制廣義表。
    三、建立廣義表的存儲結(jié)構(gòu)。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    6學(xué)時(shí)。
    第六章樹和二叉樹。
    (一)教學(xué)目的與要求。
    介紹樹的定義、性質(zhì)、存儲結(jié)構(gòu)及遍歷算法,握二叉樹的各種遍歷方法及其實(shí)現(xiàn),二叉樹的其他操作方法及實(shí)現(xiàn),樹、森林和二叉樹的轉(zhuǎn)換方法,哈夫曼樹的定義和構(gòu)造哈夫曼樹的方法,哈夫曼樹編碼的方法。掌握樹的定義、性質(zhì)、存儲結(jié)構(gòu)及遍歷算法,熟練掌握二叉樹的各種遍歷方法及其實(shí)現(xiàn),掌握二叉樹的其他操作方法及實(shí)現(xiàn),掌握樹、森林和二叉樹的轉(zhuǎn)換方法,掌握哈夫曼樹的定義和構(gòu)造哈夫曼樹的方法,了解哈夫曼樹編碼的方法。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:樹的定義、性質(zhì)和表示方法,二叉樹的定義、性質(zhì)和存儲結(jié)構(gòu),二叉樹的各種遍歷方法及實(shí)現(xiàn),建立二叉樹、輸出二叉樹、求二叉樹深度等的操作方法及實(shí)現(xiàn),樹的存儲結(jié)構(gòu),進(jìn)行先根遍歷、后根遍歷和按層遍歷的方法及實(shí)現(xiàn),進(jìn)行樹與二叉樹的轉(zhuǎn)換方法,哈夫曼樹的定義、構(gòu)造哈夫曼樹的方法及哈夫曼編碼的方法。
    教學(xué)重點(diǎn):二叉樹和樹的遍歷及其應(yīng)用。
    教學(xué)難點(diǎn):實(shí)現(xiàn)二叉樹和樹的各種操作的遞歸算法。
    第一節(jié)。
    一、樹的定義。
    二、森林的定義。
    三、樹的抽象數(shù)據(jù)類型定義。
    第二節(jié)一、二叉樹的定義二、二叉樹的性質(zhì)三、二叉樹的存儲結(jié)構(gòu)。
    第三節(jié)。
    一、遍歷二叉樹。
    二、線索二叉樹。
    第四節(jié)。
    一、樹的存儲結(jié)構(gòu)。
    二、森林與二叉樹的轉(zhuǎn)換。
    三、樹和森林的遍歷。
    第五節(jié)。
    一、最優(yōu)二叉樹(赫夫曼樹)。
    二、赫夫曼編碼。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    10學(xué)時(shí)。
    最優(yōu)樹和赫夫曼編碼。
    樹和森林。
    遍歷二叉樹和線索二叉樹。
    二叉樹。
    樹的定義和基本術(shù)語。
    第七章圖。
    (一)教學(xué)目的與要求。
    介紹圖的定義和術(shù)語;圖的存儲結(jié)構(gòu)及深度和廣度優(yōu)先搜索方法及其實(shí)現(xiàn);圖的生成樹的概念,求圖的最小生成樹的普里姆算法和克魯斯卡爾算法并了解其實(shí)現(xiàn)算法;拓?fù)渑判虻姆椒ú⒘私馄鋵?shí)現(xiàn)算法;計(jì)算關(guān)鍵路徑的方法及其實(shí)現(xiàn)算法。掌握圖的定義和術(shù)語;熟練掌握圖的存儲結(jié)構(gòu)及深度和廣度優(yōu)先搜索方法及其實(shí)現(xiàn);掌握圖的生成樹的概念,掌握求圖的最小生成樹的普里姆算法和克魯斯卡爾算法并了解其實(shí)現(xiàn)算法;掌握拓?fù)渑判虻姆椒ú⒘私馄鋵?shí)現(xiàn)算法;了解計(jì)算關(guān)鍵路徑的方法并了解其實(shí)現(xiàn)算法。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:圖的定義和術(shù)語,圖的鄰接矩陣、鄰接表和邊集數(shù)組表示,圖的深度和廣度優(yōu)先搜索遍歷,圖的生成樹和最小生成樹,拓?fù)渑判颉?BR>    教學(xué)重點(diǎn):圖在鄰接矩陣與鄰接表上實(shí)現(xiàn)的遍歷算法(dfs和bfs)。教學(xué)難點(diǎn):基于遍歷算法的應(yīng)用。
    第一節(jié)。
    一、圖的定義。
    二、無向圖。
    三、有向圖。
    四、連通圖。
    五、生成樹。
    第二節(jié)。
    一、數(shù)組表示法。
    二、鄰接表三、十字鏈表。
    四、鄰接多重表。
    第三節(jié)。
    一、深度優(yōu)先搜索。
    二、廣度優(yōu)先搜索。
    三、連通分量。
    第四節(jié)。
    一、kruskal算法。
    二、prim算法。
    第五節(jié)。
    一、拓?fù)渑判颉?BR>    二、關(guān)鍵路徑。
    第六節(jié)。
    一、從某個(gè)源點(diǎn)到其余各項(xiàng)點(diǎn)的最短路徑。
    二、每一對頂點(diǎn)之間的最短路徑。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    12學(xué)時(shí)。
    最短路徑有向無環(huán)圖及其應(yīng)用。
    最小生成樹圖的遍歷圖的存儲表示圖的定義和術(shù)語。
    第八章查找表。
    (一)教學(xué)目的與要求。
    介紹順序表查找和有序表查找的方法及實(shí)現(xiàn);二叉排序樹和平衡二叉樹的定義、對二叉排序樹和平衡二叉樹進(jìn)行插入、刪除和查找的方法和實(shí)現(xiàn)。哈希表的定義,構(gòu)造哈希函數(shù)的多種方法,以及處理沖突的方法;b樹的定義,查找、插入和刪除元素的方法。熟練掌握順序表查找和有序表查找的方法及實(shí)現(xiàn);掌握二叉排序樹和平衡二叉樹的定義、熟練掌握對二叉排序樹和平衡二叉樹進(jìn)行插入、刪除和查找的方法和實(shí)現(xiàn)。掌握哈希表的定義,構(gòu)造哈希函數(shù)的多種方法,以及處理沖突的方法;了解b樹的定義,查找、插入和刪除元素的方法。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:順序查找和二分查找,索引查找和分塊查找,散列查找,動態(tài)查找樹表。教學(xué)重點(diǎn):順序查找、二分查找、二叉排序樹上查找以及散列表上查找的基本思想和算法實(shí)現(xiàn)。
    教學(xué)難點(diǎn):二叉排序樹的刪除算法。
    第一節(jié)。
    一、順序表的查找。
    二、有序表的查找。
    三、靜態(tài)樹表的查找。
    四、索引順序表的查找。
    第二節(jié)一、二叉排序樹。
    二、平衡二叉樹。
    三、動態(tài)的m路搜索樹。
    四、b樹和b+樹基本概念。
    第三節(jié)。
    一、什么是哈希表。
    二、哈希函數(shù)的構(gòu)造方法。
    三、處理沖突的方法。
    四、哈希表的查找及其分析。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    10學(xué)時(shí)。
    第九章內(nèi)部排序。
    (一)教學(xué)目的與要求。
    介紹插入排序、交換排序、選擇排序、快速排序、歸并排序、基數(shù)排序的方法及其實(shí)現(xiàn),快速排序、堆排序、二路歸并排序的方法及其實(shí)現(xiàn),各種排序方法的穩(wěn)定性、時(shí)間復(fù)雜度和空間復(fù)雜度。掌握插入排序、交換排序、選擇排序、快速排序、歸并排序、基數(shù)排序的方法及其實(shí)現(xiàn),熟練掌握快速排序、堆排序、二路歸并排序的方法及其實(shí)現(xiàn),掌握各種排序方法的穩(wěn)定性、時(shí)間復(fù)雜度和空間復(fù)雜度。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:排序的概念,直接插入排序,冒泡排序和快排序,直接選擇排序和堆排序,歸并排序。
    哈希表動態(tài)查找表靜態(tài)查找表教學(xué)重點(diǎn):插入排序(直接插入、折半插入)、交換排序(冒泡、快速排序)、選擇排序(直接選擇、堆)、2-路歸并排序。
    教學(xué)難點(diǎn):快速排序partition算法的應(yīng)用和堆的調(diào)整。
    第一節(jié)。
    一、穩(wěn)定的排序方法。
    二、內(nèi)部/外部排序。
    三、內(nèi)部排序種類。
    四、排序中的基本操作。
    五、排序數(shù)據(jù)的存儲方式。
    第二節(jié)。
    一、直接插入排序。
    二、其他插入排序。
    三、希爾排序。
    第三節(jié)。
    一、起泡排序算法。
    二、快速排序算法。
    第四節(jié)。
    一、簡單選擇排序。
    二、樹形選擇排序。
    三、堆排序。
    第五節(jié)第六節(jié)。
    一、多關(guān)鍵字的排序。
    二、鏈?zhǔn)交鶖?shù)排序。
    第七節(jié)。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    10學(xué)時(shí)。
    第十章文件。
    (一)教學(xué)目的與要求。
    介紹文件和記錄的基本概念以及基本操作。掌握文件和記錄的基本概念以及基本操作。
    (二)教學(xué)內(nèi)容。
    主要內(nèi)容:基本概念,順序文件,索引文件,索引順序文件,散列文件,多關(guān)鍵碼文件。教學(xué)重點(diǎn):各種文件的結(jié)構(gòu)特點(diǎn)及其適用場合。教學(xué)難點(diǎn):各種文件的結(jié)構(gòu)特點(diǎn)及其適用場合。
    第一節(jié)。
    一、文件及其類別。
    二、記錄的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。
    三、文件的操作。
    四、文件的物理結(jié)構(gòu)。
    第二節(jié)。
    一、順序文件的定義。
    順序文件基本概念。
    各種排序方法的綜合比較。
    歸并排序法基數(shù)排序選擇排序法交換排序法插入排序排序的定義和方法。
    二、順序文件的優(yōu)缺點(diǎn)。
    第三節(jié)。
    一、索引文件的定義。
    二、索引文件的特點(diǎn)。
    第四節(jié)。
    一、isam文件。
    二、vsam文件。
    第五節(jié)。
    一、散列文件的定義。
    二、散列文件的特點(diǎn)。
    第六節(jié)。
    一、多重表文件。
    二、倒排文件。
    (三)教學(xué)方法與形式。
    課堂講授、多媒體課件。
    (四)教學(xué)時(shí)數(shù)。
    4學(xué)時(shí)。
    三、考核方式。
    本課程的考核采用閉卷考試的方式,課程的總評成績由平時(shí)成績、實(shí)驗(yàn)成績和期末考試成績?nèi)糠纸M成,其中平時(shí)成績占總評成績的10%,實(shí)驗(yàn)成績占總評成績的30%,期末考試成績占總評成績的60%。
    四、教材選用。
    1、殷人昆,陶永雷,謝若陽等:《數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcc++語言描述)》,清華大學(xué)出版社,2007.6年第二版。
    2、嚴(yán)蔚敏,吳偉民:《數(shù)據(jù)結(jié)構(gòu)(c語言版)》及《數(shù)據(jù)結(jié)構(gòu)題集(c語言版)》,清華大學(xué)出版社,2003年第一版。
    多關(guān)鍵碼文件散列文件isam文件和vsam文件。
    索引文件。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇三
    本學(xué)期所學(xué)習(xí)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程已經(jīng)告一段落,就其知識點(diǎn)及其掌握情況、學(xué)習(xí)體會以及對該門課程的教學(xué)建議等方面進(jìn)行學(xué)習(xí)總結(jié)。以便在所學(xué)習(xí)知識有更深刻的認(rèn)識。
    學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)之前、一直以為數(shù)據(jù)結(jié)構(gòu)是一門新的語言、后來才知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了更加高效的的組織數(shù)據(jù)、設(shè)計(jì)出良好的算法,而算法則是一個(gè)程序的靈魂。經(jīng)過了一學(xué)期的數(shù)據(jù)結(jié)構(gòu)了,在期末之際對其進(jìn)行總結(jié)。首先,學(xué)完數(shù)據(jù)結(jié)構(gòu)我們應(yīng)該知道數(shù)據(jù)結(jié)構(gòu)講的是什么,數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計(jì)算的研究的程序設(shè)計(jì)問題中所出現(xiàn)的計(jì)算機(jī)處理對象以及它們之間關(guān)系和操作的學(xué)科。
    第一章主要介紹了相關(guān)概念,如數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)的定義。其中,數(shù)據(jù)結(jié)構(gòu)包括邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和運(yùn)算集合。邏輯結(jié)構(gòu)分為四類:集合型、線性、樹形和圖形結(jié)構(gòu),數(shù)據(jù)元素的存儲結(jié)構(gòu)分為:順序存儲、鏈接存儲、索引存儲和散列存儲四類。最后著重介紹算法性能分析,包括算法的時(shí)間性能分析以及算法的空間性能分析。
    第二章具體地介紹了順序表的定義、特點(diǎn)及其主要操作,如查找、插入和刪除的實(shí)現(xiàn)。需要掌握對它們的性能估計(jì)。包括查找算法的平均查找長度,插入與刪除算法中的對象平均移動次數(shù)。
    鏈表中數(shù)據(jù)元素的存儲不一定是連續(xù)的,還可以占用任意的、不連續(xù)的物理存儲區(qū)域。與順序表相比,鏈表的插入、刪除不需要移動元素,給算法的效率帶來較大的提高。鏈表這一章中介紹了鏈表的節(jié)點(diǎn)結(jié)構(gòu)、靜態(tài)與動態(tài)鏈表的概念、鏈表的基本運(yùn)算(如求表長、插入、查找、刪除等)、單鏈表的建立(頭插法和尾插法)以及雙向循環(huán)鏈表的定義、結(jié)構(gòu)、功能和基本算法。
    第三章介紹了堆棧與隊(duì)列這兩種運(yùn)算受限制的線性結(jié)構(gòu)。其基本運(yùn)算方法與順序表和鏈表運(yùn)算方法基本相同,不同的是堆棧須遵循“先進(jìn)后出”的規(guī)則,對堆棧的操作只能在棧頂進(jìn)行;而隊(duì)列要遵循“先進(jìn)先出”的規(guī)則,教材中列出了兩種結(jié)構(gòu)的相應(yīng)算法,如入棧、出棧、入隊(duì)、出隊(duì)等。在介紹隊(duì)列時(shí),提出了循環(huán)隊(duì)列的概念,以避免“假溢出”的現(xiàn)象。算法上要求掌握進(jìn)棧、退棧、取棧頂元素、判??蘸兄每諚5任宸N操作及掌握使用元素個(gè)數(shù)計(jì)數(shù)器及少用一個(gè)元素空間來區(qū)分隊(duì)列空、隊(duì)列滿的方法。
    第四章串和數(shù)組中,我們知道串是一種特殊的線性表,是由零個(gè)或多個(gè)任意字符組成的字符序列。串的儲存結(jié)構(gòu)分為緊縮模式和非緊縮模式。
    基本運(yùn)算需掌握求串長、串賦值、連接操作、求子串、串比較、串定位、串插入、串刪除、串替換等。
    第五章二叉樹的知識是重點(diǎn)內(nèi)容。在介紹有關(guān)概念時(shí),提到了二叉樹的性質(zhì)以及兩種特殊的二叉樹:完全二叉樹和滿二叉樹。接著介紹二叉樹的順序存儲和鏈接存儲以及生成算法。重點(diǎn)介紹二叉樹的遍歷算法(遞歸算法、先序、中序和后序遍歷非遞歸算法)和線索二叉樹。二叉樹的應(yīng)用:基本算法、哈弗曼樹、二叉排序樹和堆排序。
    樹與二叉樹是不同的概念。教材介紹了樹和森林的概念、遍歷和存儲結(jié)構(gòu),還有樹、森林和二叉樹的相互關(guān)系,樹或森林怎樣轉(zhuǎn)化成二叉樹,二叉樹又如何轉(zhuǎn)換為樹和森林等算法。
    第六章介紹了圖的概念及其應(yīng)用,圖的存儲結(jié)構(gòu)的知識點(diǎn)有:鄰接矩陣、鄰接表、逆鄰接表、十字鏈表和鄰接多重表。圖的遍歷包括圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷。其余知識點(diǎn)有:有向圖、連通圖、生成樹和森林、最短路徑問題和有向無環(huán)圖及其應(yīng)用。有向無環(huán)圖重點(diǎn)理解aov網(wǎng)和拓?fù)渑判蚣捌渌惴ā?BR>    最后兩章集體說明了查找和排序算法,查找教材上介紹了靜態(tài)查找表和哈希查找表,靜態(tài)查找表中介紹了順序查找、折半查找以及分塊查找。哈希法中,學(xué)習(xí)要點(diǎn)包括哈希函數(shù)的比較;解決地址沖突的線性探查法的運(yùn)用,平均探查次數(shù);解決地址沖突的二次哈希法的運(yùn)用。
    排序是使用最頻繁的一類算法,可分為內(nèi)部排序和外部排序。主要需要理解排序的基本概念,在算法上、需要掌握插入排序(包括直接插入排序算法、折半插入排序算法),交換排序(包括冒泡排序算法、快速排序遞歸算法),選擇排序(包括直接選擇排序算法、堆排序算法)等。
    二、對各知識點(diǎn)的掌握情況。
    總體來看,對教材中的知識點(diǎn)理解較為完善,但各個(gè)章節(jié)均出現(xiàn)有個(gè)別知識點(diǎn)較為陌生的現(xiàn)象。現(xiàn)將各個(gè)章節(jié)出現(xiàn)的知識點(diǎn)理解情況列舉如下。
    第一章中我對數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)的概念理解較為透徹,熟悉數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)。而對算法的時(shí)間、空間性能分析較為模糊,尤其是空間性能分析需要加強(qiáng)。
    第二章,順序表的概念、生成算法理解較為清晰,并且熟悉簡單順序查找和二分查找,對分塊查找較為含糊;排序問題中,由于冒泡排序在大一c語言課上已經(jīng)學(xué)習(xí)過,再來學(xué)習(xí)感覺很輕松。對插入排序和選擇排序理解良好,但是,在實(shí)際運(yùn)用中仍然出現(xiàn)明顯不熟練的現(xiàn)象。由于在歸并排序?qū)W習(xí)中感覺較吃力,現(xiàn)在對這種排序方法仍然非常模糊,所以需要花較多的時(shí)間來補(bǔ)習(xí)。此外串的模式匹配也是較難理解的一個(gè)地方。
    鏈表這一章中,除對雙向循環(huán)鏈表這一知識點(diǎn)理解困難之外,其他的知識點(diǎn)像單鏈表的建立和基本算法等都較為熟悉。
    接下來的有關(guān)堆棧以及隊(duì)列的知識點(diǎn)比較少,除有關(guān)算法較為特殊以外,其余算法都是先前學(xué)過的順序表和鏈表的知識,加上思想上較為重視,因此這部分內(nèi)容是我對全書掌握最好的一部分。不足之處仍然表現(xiàn)在算法的性能分析上。
    在學(xué)習(xí)第六章時(shí)感覺較為吃力的部分在于矩陣的應(yīng)用上,尤其對矩陣轉(zhuǎn)置算法的c語言描述不太理解。稀疏矩陣相加算法中,用三元組表實(shí)現(xiàn)比較容易理解,對十字鏈表進(jìn)行矩陣相加的方法較為陌生。
    第七章是全書的重點(diǎn),卻也有一些內(nèi)容沒有完全理解。在第一節(jié)基本概念中,二叉樹的性質(zhì)容易懂卻很難記憶。對二叉樹的存儲結(jié)構(gòu)和遍歷算法這部分內(nèi)容掌握較好,能夠熟練運(yùn)用,而對于二叉樹應(yīng)用中的哈弗曼樹卻比較陌生。
    第八章內(nèi)容較少,牽涉到所學(xué)的隊(duì)列的有關(guān)內(nèi)容,總體來說理解上沒有什么困難,問題依舊出現(xiàn)在算法的性能分析上。
    散列結(jié)構(gòu)這一章理解比較完善的知識點(diǎn)有:基本概念和存儲結(jié)構(gòu)。散列函數(shù)中直接定址法和除留余數(shù)法學(xué)得比較扎實(shí),對數(shù)字分析法等方法則感覺較為陌生。對兩種沖突處理的算法思想的理解良好,問題在于用c語言描述上。
    最后一章,圖及其應(yīng)用中,圖的定義、基本運(yùn)算如圖的生成等起初理解有困難,但隨著學(xué)習(xí)深入,對它的概念也逐步明朗起來。鄰接矩陣、鄰接表和逆鄰接表掌握較好,而對十字鏈表和鄰接多重表則較為陌生。感覺理解較為吃力的內(nèi)容還有圖的遍歷(包括深度和廣度優(yōu)先遍歷),最小生成樹問題也是比較陌生的知識點(diǎn)。最短路徑和aov網(wǎng)學(xué)習(xí)起來感覺比較輕松,而對于c語言描述卻又不大明白。
    由于平時(shí)上機(jī)練習(xí)的少,對于教材中很多算法都掌握的不是很熟悉、不過這些都是可以彌補(bǔ)的,我會在剩下的時(shí)間中不斷練習(xí)書上給出的算法和練習(xí),正如教材上說的,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),僅從書本上學(xué)習(xí)是不夠的,必須經(jīng)過大量的程序設(shè)計(jì)實(shí)踐,在實(shí)踐中體會構(gòu)造性思維方法,掌握數(shù)據(jù)組織與程序設(shè)計(jì)技術(shù)。
    三、學(xué)習(xí)體會:
    多做實(shí)驗(yàn)!這個(gè)就沒有太多理由了,我一直覺得編程是一門熟練科學(xué),多編程,水平肯定會提高,最重要的是能夠養(yǎng)成一種感覺,就是對程序?qū)λ惴ǖ拿舾?,為什么那些牛人看一個(gè)算法一下子就看懂了?而自己要看很久才能弄懂,而且弄懂了過了一陣子又忘記了?其實(shí)這個(gè)是因?yàn)榕H藗円郧翱吹某绦蚝芏?,編得也很多,所以他們有了那種感覺,所以我覺得大家應(yīng)該多看程序,多寫程序,培養(yǎng)自己的感覺。
    復(fù)習(xí)和考試的技巧,我想大家應(yīng)該都有這樣的感覺,就是覺得自己什么都掌握了,但是在考試的時(shí)候就是會犯暈,有時(shí)候一出考場就知道錯(cuò)在哪個(gè)了,然后考完以后一對答案,發(fā)現(xiàn)其實(shí)考得很簡單,應(yīng)該都是自己會做的,這個(gè)就是與自己的復(fù)習(xí)和考試的技巧有關(guān)系了。
    首先就是復(fù)習(xí),前面已經(jīng)說過其實(shí)我們學(xué)的算法也就是幾十個(gè),那么我們的任務(wù)也就是理解這幾十個(gè)算法,復(fù)習(xí)也就是要加深你的理解。如何理解算法,然后理解到什么程度呢?是能默出整個(gè)算法嗎?其實(shí)不是這樣的,數(shù)據(jù)結(jié)構(gòu)的考試有它的特點(diǎn),考過程考試了,大家應(yīng)該都發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)其實(shí)不要求你把整個(gè)算法背出來,它注重考察你的理解,那么怎么考察呢?其實(shí)也就是兩種方式吧,一種就是用實(shí)例,就是給你一個(gè)例子,要你用某個(gè)算法運(yùn)行出結(jié)果,我想這個(gè)期末考試的時(shí)候仍然會有很多這樣的題目,比如排序那塊就很好出這樣的題目,要復(fù)習(xí)這種題目我覺得很簡單,就是每個(gè)算法都自己用例子去實(shí)踐一下,以不變應(yīng)萬變,我期中復(fù)習(xí)的時(shí)候就是這樣去做的,而且考試之前我就覺得那個(gè)并查集的題目就很有可能會考,于是就自己出了幾個(gè)例子,做了一下。另外一種考察方式就是算法填空和算法改錯(cuò),可能有一些同學(xué)覺得這種題目很難,其實(shí)我們首先可以確定這兩種題目肯定是與書上算法有關(guān)系的,只要理解了書上的算法就可以了,有人覺得看完書以后什么都懂了,而且要默也默得出來,其實(shí)不是這樣的,算法改錯(cuò)和填空主要是考察的細(xì)微處,雖然你覺得你默得出來,那是能夠默出算法的主體部分,很多細(xì)微的地方你就會很容易忽略。我想大家考過期中考以后應(yīng)該都有這種感覺吧?那要怎樣解決這種問題呢?我覺得有兩種方法,一種就是自己去編程實(shí)現(xiàn),這種方法比較有意義,還能夠提高編程水平,另外一種就是用實(shí)例分析算法的每句話,我認(rèn)為這種方法是最有效的。
    然后還有一種題目,就是最后的寫算法的題目,我覺得這種題目還是很好解決的,只要是能夠自己做出作業(yè)的,基本上都會很容易做出來,這也是為什么我前面覺得平時(shí)做作業(yè)應(yīng)該自己獨(dú)立思考的原因,同時(shí)做這種題目千萬要小心,尤其是題目簡單的時(shí)候,那肯定會有一些小地方要考慮清楚,一不小心就會被扣掉很多分,這樣很不值。
    我覺得考試的時(shí)候沒有太多要講的,只要復(fù)習(xí)好了,考試的時(shí)候細(xì)心一點(diǎn)就可以了,然后就是做一個(gè)題目開始就要盡量保證正確,如果覺得留在那里等后面做完了再來檢查,這樣錯(cuò)誤還是很有可能檢查不出來,我期中考試的時(shí)候就基本上沒有檢查,因?yàn)槲易雒總€(gè)題目都是確保正確,用的時(shí)間也挺多的,然后也覺得沒有檢查的必要了。
    1、建議在上課過程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識,也便于及時(shí)了解學(xué)生對知識點(diǎn)的掌握情況,同時(shí)有助于學(xué)生保持良好的精神狀態(tài)。
    2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過課堂的習(xí)題講解,加深對知識點(diǎn)的掌握,同時(shí)對各知識點(diǎn)的運(yùn)用有一個(gè)更為直觀和具體的認(rèn)識。
    3、要更加重視實(shí)驗(yàn)的重要性。
    以上便是我對《數(shù)據(jù)結(jié)構(gòu)與算法》這門課的學(xué)習(xí)總結(jié),我會抓緊時(shí)間將沒有吃透的知識點(diǎn)補(bǔ)齊。今后我仍然會繼續(xù)學(xué)習(xí),克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁進(jìn)!
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇四
    數(shù)據(jù)結(jié)構(gòu)是一門純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。在學(xué)習(xí)科目的第一節(jié)課起,魯老師就為我們闡述了它的重要性。它對我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。很多同學(xué)都說,數(shù)據(jù)結(jié)構(gòu)不好學(xué),這我深有體會。剛開始學(xué)的時(shí)候確實(shí)有很多地方我很不理解,每次上課時(shí)老師都會給我們出不同的設(shè)計(jì)題目,對于我們一個(gè)初學(xué)者來說,無疑是一個(gè)具大的挑戰(zhàn)。
    我記得有節(jié)課上遍歷二叉樹的內(nèi)容,先序遍歷、中序遍歷、后序遍歷。魯老師說:這節(jié)課的內(nèi)容很重要,不管你以前聽懂沒有,現(xiàn)在認(rèn)真聽。說實(shí)在的,以前上的內(nèi)容確實(shí)沒大聽懂,不過聽了老師的話,我聽得很認(rèn)真。先序遍歷很簡單,是三個(gè)遍歷中,最簡單的。而中序遍歷聽得有點(diǎn)模糊,后序遍歷也半懂半懂,我心想如果老師再講一遍,我肯定能聽懂。后來老師畫了一個(gè)二叉樹,抽了同學(xué)到黑板上去排序,這個(gè)二叉樹看似復(fù)雜,不過用先序遍歷來排,并不難。于是我在下面排好了先序,先序遍歷很簡單,我有點(diǎn)得意,老師到位置上點(diǎn)了我上去排中序,上去之后排得一塌糊涂。后來老師又講了一遍,我這才聽懂了,魯老師又安慰我們說,這個(gè)二叉樹有點(diǎn)難,中序和后序都不好排,要學(xué)懂的確要花點(diǎn)功夫才行。我聽了老師的話,認(rèn)真做了筆記,回去再看了當(dāng)天學(xué)的內(nèi)容。第二堂課,老師還是先講的先前的內(nèi)容,畫了一個(gè)簡單的二叉樹,讓我們排序,又叫同學(xué)上去分別排出來,老師又點(diǎn)了我的名,叫我起來辨別排中序那兩個(gè)同學(xué)的答案哪個(gè)排正確了,我毫不猶豫的答對了。因?yàn)檫@次的內(nèi)容,先序遍歷二叉樹、中序遍歷二叉樹、后序遍歷二叉樹,我的確真的懂了,第一次上這個(gè)課這么有成就感。漸漸的對這門課有了興趣。我以為永遠(yuǎn)都聽不懂這個(gè)課,現(xiàn)在,我明白了,只要認(rèn)真聽,肯下功夫,這個(gè)課也沒有什么難的。而數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的難易程度很大程度上決定于個(gè)人的興趣,把一件事情當(dāng)做任務(wù)去做會很痛苦,當(dāng)做興趣去做會很快樂。也希望老師能看到我的改變,在此也感謝老師的辛勤教導(dǎo)。老師沒有放棄我,幾次點(diǎn)我的名上去,老師一定看得到我的進(jìn)步。
    后來,我每節(jié)課都認(rèn)真聽課,老師雖然沒有點(diǎn)名,但我還是很認(rèn)真的聽。雙親表示法孩子表示法和孩子兄弟表示法,這些內(nèi)容我都聽得很明白,差不多每節(jié)課都認(rèn)真聽課。有時(shí)我也會在上課空余時(shí)間看看以前的內(nèi)容,所以,第一遍看課本的時(shí)候要將概念熟記于心,然后構(gòu)建知識框架。數(shù)據(jù)結(jié)構(gòu)包括線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。線性結(jié)構(gòu)包括線性表、棧、隊(duì)列、串、數(shù)組、廣義表等,棧和隊(duì)列是操作受限的線性表,串的數(shù)據(jù)對象約束為字符集,數(shù)組和廣義表是對線性表的擴(kuò)展:表中的數(shù)據(jù)元素本身也是一個(gè)數(shù)據(jù)結(jié)構(gòu)。除了線性表以外,棧是重點(diǎn),因?yàn)闂:瓦f歸緊密相連,遞歸是程序設(shè)計(jì)中很重要的一種工具。
    其中我了解到:棧(stack)是只能在某一端插入和刪除的特殊線性表。它按照后進(jìn)先出的原則存儲數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開始彈出數(shù)據(jù);隊(duì)列一種特殊的線性表,它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作。進(jìn)行插入的操作端稱為隊(duì)尾,進(jìn)行刪除的操作端稱為隊(duì)頭。隊(duì)列中沒有元素時(shí),稱為空隊(duì)列;鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(diǎn)組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動態(tài)生成。每個(gè)結(jié)點(diǎn)包括兩個(gè)部分:一個(gè)是存儲數(shù)據(jù)元素的數(shù)據(jù)域,另一個(gè)是存儲下一個(gè)結(jié)點(diǎn)地址的指針域。
    想著自己報(bào)考自考的專業(yè),也會考數(shù)據(jù)結(jié)構(gòu)這門,這學(xué)期就結(jié)束了,或多或少都收獲了一些知識。盡管學(xué)得還不是很透徹,我相信這對自己的自考會有很大的幫助,所以,即使是結(jié)束了這科的內(nèi)容,我也不會放棄去學(xué)習(xí)它。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇五
    完成了這次的二元多項(xiàng)式加減運(yùn)算問題的課程設(shè)計(jì)后,我的心得體會很多,細(xì)細(xì)梳理一下,有以下幾點(diǎn):
    1、程序的編寫中的語法錯(cuò)誤及修改。
    因?yàn)槲以诮鉀Q二元多項(xiàng)式問題中,使用了鏈表的方式建立的二元多項(xiàng)式,所以程序的空間是動態(tài)的生成的,而且鏈表可以靈活地添加或刪除結(jié)點(diǎn),所以使得程序得到簡化。但是出現(xiàn)的語法問題主要在于子函數(shù)和變量的定義,降序排序,關(guān)鍵字和函數(shù)名稱的書寫,以及一些庫函數(shù)的規(guī)范使用,這些問題均可以根據(jù)編譯器的警告提示,對應(yīng)的將其解決。
    2、程序的設(shè)計(jì)中的邏輯問題及其調(diào)整。
    我在設(shè)計(jì)程序的過程中遇到許多問題,首先在選擇數(shù)據(jù)結(jié)構(gòu)的時(shí)候選擇了鏈表,但是鏈表的排序比較困難,特別是在多關(guān)鍵字的情況下,在一種關(guān)鍵字確定了順序以后,在第一關(guān)鍵字相同的時(shí)候,按某種順序?qū)Φ诙P(guān)鍵字進(jìn)行排序。在此程序中共涉及到3個(gè)量數(shù),即:系數(shù),x的指數(shù)和y的指數(shù),而關(guān)鍵字排是按x的指數(shù)和y的指數(shù)來看,由于要求是降冪排序且含有2個(gè)關(guān)鍵字,所以我先選擇x的指數(shù)作為第一關(guān)鍵字,先按x的降序來排序,當(dāng)x的指數(shù)相同時(shí),再以y為關(guān)鍵字,按照y的指數(shù)大小來進(jìn)行降序排列。
    另外,我在加法函數(shù)的編寫過程中也遇到了大量的問題,由于要同時(shí)比較多個(gè)關(guān)鍵字,而且設(shè)計(jì)中涉及了數(shù)組和鏈表的綜合運(yùn)用,導(dǎo)致反復(fù)修改了很長的時(shí)間才完成了一個(gè)加法的設(shè)計(jì)。但是,現(xiàn)在仍然有一個(gè)問題存在:若以0為系數(shù)的項(xiàng)是首項(xiàng)則顯示含有此項(xiàng),但是運(yùn)算后則自動消除此項(xiàng),這樣是正確的。但是當(dāng)其不是首項(xiàng)的時(shí)候,加法函數(shù)在顯示的時(shí)候有0為系數(shù)的項(xiàng)時(shí),0前邊不顯示符號,當(dāng)然,這樣也可以理解成當(dāng)系數(shù)為0時(shí),忽略這一項(xiàng)。這也是本程序中一個(gè)不完美的地方。
    我在設(shè)計(jì)減法函數(shù)的時(shí)候由于考慮不夠充分就直接編寫程序,走了很多彎路,不得不停下來仔細(xì)研究算法,后來發(fā)現(xiàn)由于前邊的加法函數(shù)完全適用于減法,只不過是將二元多項(xiàng)式b的所有項(xiàng)取負(fù)再用加法函數(shù)即可,可見算法的重要性不低于程序本身。
    3、程序的調(diào)試中的經(jīng)驗(yàn)及體會。
    我在調(diào)試過程中,發(fā)生了許多小細(xì)節(jié)上的問題,它們提醒了自己在以后編程的時(shí)候要注意細(xì)節(jié),即使是一個(gè)括號的遺漏或者一個(gè)字符的誤寫都會造成大量的錯(cuò)誤,浪費(fèi)許多時(shí)間去尋找并修改,總結(jié)的教訓(xùn)就是寫程序的時(shí)候,一定要仔細(xì)、認(rèn)真、專注。
    我還有一個(gè)很深的體會就是格式和注釋,由于平時(shí)不注意格式和注釋這方面的要求,導(dǎo)致有的時(shí)候在檢查和調(diào)試的時(shí)候很不方便。有的時(shí)候甚至剛剛完成一部分的編輯,結(jié)果一不注意,就忘記了這一部分程序的功能。修改的時(shí)候也有不小心誤刪的情況出現(xiàn)。如果注意格式風(fēng)格,并且養(yǎng)成隨手加注釋的習(xí)慣,就能減少這些不必要的反復(fù)和波折。還有一點(diǎn),就是在修改的時(shí)候,要注意修改前后的不同點(diǎn)在哪里,改后調(diào)試結(jié)果要在原有的基礎(chǔ)上更加精確。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇六
    知識部分:1.數(shù)據(jù)結(jié)構(gòu)的內(nèi)容:
    數(shù)據(jù)的存儲結(jié)構(gòu):是數(shù)據(jù)的邏輯結(jié)構(gòu)在存儲器里的實(shí)現(xiàn);
    數(shù)據(jù)的運(yùn)算:插入、刪除、排序、查找等;2.數(shù)據(jù)的存儲結(jié)構(gòu)分為:順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。3.單鏈表與雙鏈表的插入與刪除這里不再贅述,百度一下吧!
    5.串的基本運(yùn)算有:鏈接、賦值、求長度、全等比較、求子串、求子串的位置及替換等。6.廣義表:廣義表是線性表的推廣,也稱列表。
    廣義表的特點(diǎn):
    廣義表的元素可以使字表,且字表的元素還可以是字表;
    廣義表可以被其他廣義表所共享;
    廣義表可以是遞歸的表,機(jī)本身的一個(gè)字表;
    7.多維數(shù)組與稀疏矩陣的存儲比較復(fù)雜,請用百度查找相關(guān)內(nèi)容,不再贅述;
    8.樹:樹并不重要,重要的知識點(diǎn)是二叉樹,對樹理解不透徹的同學(xué),請用百度搜索。9.二叉樹:
    二叉樹的重點(diǎn)內(nèi)容包括:
    二叉樹的遍歷:中序遍歷、前序遍歷、后續(xù)遍歷;(重點(diǎn)考察)完全二叉樹(定義):在一棵二叉樹中,若最多只有最下面兩層的節(jié)點(diǎn)數(shù)可小于2,且最下面一層的節(jié)點(diǎn)集中于最左邊的位置,則稱此二叉樹為完全二叉樹;樹的先根次序周游對應(yīng)于二叉樹的前序周游(遍歷),樹的后根次序周游對應(yīng)于二叉樹的中序周游(遍歷)。
    10.二叉樹的存儲結(jié)構(gòu):鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)。
    二叉樹的鏈?zhǔn)酱鎯Γ?BR>    是指二叉樹的各節(jié)點(diǎn)隨機(jī)存儲在內(nèi)存空間中,節(jié)點(diǎn)之間的關(guān)系用指針標(biāo)示;
    二叉樹的順序存儲:
    二叉樹的順序存儲就是按一定的次序,用一組地址連續(xù)的存儲單元存儲二叉樹的節(jié)點(diǎn)元素;
    完全二叉樹的順序存儲的性質(zhì):
    用數(shù)組a[1….n]順序存儲完全二叉樹的各節(jié)點(diǎn),則當(dāng)i0,且i=[(n-1)/2]時(shí),節(jié)點(diǎn)a[i]的右子女是節(jié)點(diǎn)a[2i+1],否則節(jié)點(diǎn)a[i]沒有右子女;同理當(dāng)i0且i=[n/2],節(jié)點(diǎn)i的左子女節(jié)點(diǎn)是2i,否則沒有!11.哈夫曼樹:基本定義術(shù)語:
    節(jié)點(diǎn)的路徑長度:從根節(jié)點(diǎn)到該節(jié)點(diǎn)的路徑上分支的數(shù)目;
    樹的路徑長度:樹中所有的節(jié)點(diǎn)的路徑長度之和;
    哈夫曼樹:在有n個(gè)葉子節(jié)點(diǎn),并帶有相同權(quán)值的二叉樹中,必定存在一個(gè)二叉樹,使其帶權(quán)路徑長度最短,這樣的二叉樹被稱為“最優(yōu)二叉樹”或“哈夫曼樹”
    如下圖:
    12.排序算法:
    ??嫉呐判蛩惴ㄓ校翰迦肱判?、冒泡排序、選擇排序、快速排序、堆排序。
    快速排序:這是一種高效排序方法:
    實(shí)踐證明,快速排序是所有排序算法中最高效的一種。它采用了分治的思想:先保證列表的前半部分都小于后半部分,然后分別對前半部分和后半部分排序,這樣整個(gè)列表就有序了。這是一種先進(jìn)的思想,也是它高效的原因。因?yàn)樵谂判蛩惴ㄖ校惴ǖ母咝c否與列表中數(shù)字間的比較次數(shù)有直接的關(guān)系,而“保證列表的前半部分都小于后半部分”就使得前半部分的任何一個(gè)數(shù)從此以后都不再跟后半部分的數(shù)進(jìn)行比較了,大大減少了數(shù)字間不必要的比較。但查找數(shù)據(jù)得另當(dāng)別論了。
    堆排序:與前面的算法都不同,它是這樣的:
    首先新建一個(gè)空列表,作用與插入排序中的“有序列表”相同。
    找到數(shù)列中最大的數(shù)字,將其加在“有序列表”的末尾,并將其從原數(shù)列中刪除。
    重復(fù)2號步驟,直至原數(shù)列為空。
    堆排序的平均時(shí)間復(fù)雜度為nlogn,效率高(因?yàn)橛卸堰@種數(shù)據(jù)結(jié)構(gòu)以及它奇妙的特征,使得“找到數(shù)列中最大的數(shù)字”這樣的操作只需要o(1)的時(shí)間復(fù)雜度,維護(hù)需要logn的時(shí)間復(fù)雜度),但是實(shí)現(xiàn)相對復(fù)雜(可以說是這里7種算法中比較難實(shí)現(xiàn)的)。
    看起來似乎堆排序與插入排序有些相像,但他們其實(shí)是本質(zhì)不同的算法。至少,他們的時(shí)間復(fù)雜度差了一個(gè)數(shù)量級,一個(gè)是平方級的,一個(gè)是對數(shù)級的。
    算法的時(shí)間復(fù)雜度:
    平均時(shí)間復(fù)雜度。
    插入排序o(n2)。
    冒泡排序o(n2)。
    選擇排序o(n2)。
    快速排序o(nlogn)。
    堆排序o(nlogn)。
    歸并排序o(nlogn)。
    基數(shù)排序o(n)。
    希爾排序o(n1.25)。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇七
    數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)中的重要學(xué)科,它研究了如何組織和存儲數(shù)據(jù)以便高效地訪問和修改。在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過程中,我深刻體會到了思政教育的重要性,也認(rèn)識到了數(shù)據(jù)結(jié)構(gòu)對我們?nèi)粘I畹挠绊?。在這篇文章中,我將分享我在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)過程中的體會和心得。
    首先,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)讓我認(rèn)識到團(tuán)隊(duì)合作的重要性。在實(shí)踐中,我意識到一個(gè)高效的數(shù)據(jù)結(jié)構(gòu)能夠極大地提高程序的效率。然而,實(shí)現(xiàn)一個(gè)高效的數(shù)據(jù)結(jié)構(gòu)是一項(xiàng)復(fù)雜的任務(wù),需要多人的協(xié)作和努力。在團(tuán)隊(duì)合作的過程中,我學(xué)會了與他人溝通、互相交流和理解,并意識到了一個(gè)好的團(tuán)隊(duì)合作對于項(xiàng)目的成功是至關(guān)重要的。這使我深刻意識到,在生活和工作中,團(tuán)隊(duì)合作能夠帶來共同的成功,也讓我更加明白了團(tuán)結(jié)合作的力量。
    其次,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)讓我明白了信息的重要性。在當(dāng)今信息時(shí)代,數(shù)據(jù)的重要性不言而喻。而數(shù)據(jù)結(jié)構(gòu)正是為了高效的組織和存儲數(shù)據(jù)而存在的。通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我了解了不同的數(shù)據(jù)存儲和檢索方式,以及它們對于程序性能的影響。這讓我明白了合理地組織和利用數(shù)據(jù)對于提高效率和解決問題的重要性。在生活中,我也開始更加注重整理和管理個(gè)人信息,以便更好地利用它們。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不僅教會了我技術(shù)上的操作,更是教會了我在信息時(shí)代如何正確地利用信息。
    進(jìn)一步,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)培養(yǎng)了我分析和解決問題的能力。在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過程中,我面臨了許多挑戰(zhàn),需要運(yùn)用所學(xué)的知識來解決問題。通過分析問題、尋找合適的數(shù)據(jù)結(jié)構(gòu)和算法,并編寫有效的代碼,我逐漸培養(yǎng)了解決問題的能力。這種能力不僅在編程中有用,更在解決現(xiàn)實(shí)生活中的問題時(shí)起到了重要的作用。我明白了問題解決的思路和方法論,并學(xué)會了在面對問題時(shí)冷靜思考和迅速響應(yīng)。
    最后,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)加深了我對社會發(fā)展的思考。經(jīng)過學(xué)習(xí),我了解到數(shù)據(jù)結(jié)構(gòu)的發(fā)展歷程和應(yīng)用領(lǐng)域,并思考了它與社會發(fā)展的關(guān)系。數(shù)據(jù)結(jié)構(gòu)不僅為程序提供了高效的數(shù)據(jù)組織方式,還在互聯(lián)網(wǎng)、人工智能等領(lǐng)域扮演著重要的角色。通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我對科學(xué)技術(shù)的發(fā)展有了更深入的理解,也認(rèn)識到了我作為一名計(jì)算機(jī)專業(yè)學(xué)生的使命和責(zé)任。我要不斷學(xué)習(xí)和探索,為社會的發(fā)展盡自己的一份力量。
    綜上所述,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不僅是為了技術(shù)的掌握和應(yīng)用,更是為了培養(yǎng)思政教育中提倡的團(tuán)隊(duì)合作、信息利用、問題解決和社會責(zé)任感。通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我明白了技術(shù)與思政的緊密聯(lián)系,并在實(shí)踐中體驗(yàn)到了這種聯(lián)系的重要性。因此,在今后的學(xué)習(xí)和工作中,我將更加注重培養(yǎng)思政教育所倡導(dǎo)的實(shí)踐能力和社會責(zé)任感,以更好地投身社會,為社會的發(fā)展作出貢獻(xiàn)。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇八
    計(jì)算機(jī)技術(shù)已成為現(xiàn)代化發(fā)展的重要支柱和標(biāo)志,并逐步滲透到人類生活的各個(gè)領(lǐng)域。隨著計(jì)算機(jī)硬件的發(fā)展,對計(jì)算機(jī)軟件的發(fā)展也提出了越來越高的要求。由于軟件的核心是算法,而算法實(shí)際上是對加工數(shù)據(jù)過程的描述,所以研究數(shù)據(jù)結(jié)構(gòu)對提高編程能力和設(shè)計(jì)高性能的算法是至關(guān)重要的。
    非數(shù)值計(jì)算問題的數(shù)學(xué)模型不再是傳統(tǒng)的數(shù)學(xué)方程問題,而是諸如表、樹、圖之類的數(shù)據(jù)結(jié)構(gòu)。因此,簡單地說,數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題的學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和算法。
    一、教學(xué)目的與要求---了解數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);
    教學(xué)要求在每章教學(xué)內(nèi)容給出,大體上為三個(gè)層次:了解、掌握和熟練掌握。他們的含義大致為:了解是正確理解概念,掌握是學(xué)會所學(xué)知識,熟練掌握就是運(yùn)用所學(xué)知識解決實(shí)際問題。
    教學(xué)目的為:了解算法對于程序設(shè)計(jì)的重要性;學(xué)習(xí)掌握基本數(shù)據(jù)結(jié)構(gòu)的描述與實(shí)現(xiàn)方法,熟練掌握典型數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用算法的設(shè)計(jì)。了解算法分析方法。
    二、教學(xué)重點(diǎn)與難點(diǎn)--數(shù)據(jù)結(jié)構(gòu)中基本概念和術(shù)語,算法描述和分析方法。
    1、鏈表插入、刪除運(yùn)算的算法。算法時(shí)間復(fù)雜度。
    2、后綴表達(dá)式的算法,數(shù)制的換算。
    利用本章的基本知識設(shè)計(jì)相關(guān)的應(yīng)用問題。
    3、循環(huán)隊(duì)列的特點(diǎn)及判斷溢出的條件。
    利用隊(duì)列的特點(diǎn)設(shè)計(jì)相關(guān)的應(yīng)用問題。
    4、串的模式匹配運(yùn)算算法。
    5、二叉樹遍歷算法的設(shè)計(jì)。
    利用二叉樹遍歷算法,解決簡單應(yīng)用問題哈夫曼樹的算法。
    6、圖的遍歷。
    最小生成樹。
    最短路徑。
    7、二叉排序樹查找。
    平衡樹二叉樹。
    8、堆排序。
    快速排序歸并排序。
    四、教學(xué)內(nèi)容、目標(biāo)與學(xué)時(shí)分配。
    教學(xué)內(nèi)容教學(xué)目標(biāo)課時(shí)分配。
    1、緒論。
    邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)。
    算法和算法分析。
    2、線性表。
    線性表的定義與運(yùn)算。
    線性表的順序存儲。
    線性表的鏈?zhǔn)酱鎯Α?BR>    3、棧。
    棧的定義與運(yùn)算。
    棧存儲和實(shí)現(xiàn)。
    棧的應(yīng)用舉例。
    4、隊(duì)列。
    隊(duì)列的定義與基本運(yùn)算。
    隊(duì)列的存儲與實(shí)現(xiàn)。
    隊(duì)列的應(yīng)用舉例。
    5、串。
    串的定義與基本運(yùn)算。
    串的表示與實(shí)現(xiàn)。
    串的基本運(yùn)算。
    6、樹和二叉樹。
    樹的定義和術(shù)語。
    二叉樹樹的基本概念和術(shù)語遍歷二叉數(shù)和線索二叉樹。
    二叉樹的轉(zhuǎn)換。
    二叉樹的應(yīng)用。
    哈夫曼樹及其應(yīng)用。
    7、圖。
    圖的定義和術(shù)語。
    圖的存儲結(jié)構(gòu)。
    圖的遍歷算法。
    圖的連通性。
    8、查找。
    查找的基本概念與靜態(tài)查找動態(tài)查找。
    哈希表。
    了解。
    了解。
    掌握。
    熟練掌握順序表存儲地址的計(jì)算。
    掌握單鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
    掌握雙鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
    掌握棧的定義與運(yùn)算。
    掌握棧的存儲與實(shí)現(xiàn)。
    熟練掌握棧的各種實(shí)際應(yīng)用。
    掌握隊(duì)列的定義與基本運(yùn)算。
    熟練掌握隊(duì)列的存儲與實(shí)現(xiàn)。
    掌握循環(huán)隊(duì)列的特征和基本運(yùn)算。
    了解串的邏輯結(jié)構(gòu)。
    掌握串的存儲結(jié)構(gòu)。
    熟練掌握串的基本運(yùn)算。
    了解。
    了解二叉樹。
    熟練掌握二叉樹定義和存儲結(jié)構(gòu)。
    了解二叉樹的遍歷算法。
    掌握。
    掌握哈夫曼的建立及編碼。
    了解。
    了解。
    熟練掌握。
    熟練掌握。
    了解。
    熟練掌握。
    了解哈希表與哈希方法。
    4學(xué)時(shí)。
    1學(xué)時(shí)。
    1學(xué)時(shí)。
    2學(xué)時(shí)。
    8學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    4學(xué)時(shí)。
    8學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    4學(xué)時(shí)。
    6學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    6學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    12學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    8學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    8學(xué)時(shí)。
    4學(xué)時(shí)。
    2學(xué)時(shí)。
    2學(xué)時(shí)。
    9、排序。
    12學(xué)時(shí)插入排序。
    熟練掌握基本思想。
    3學(xué)時(shí)快速排序。
    了解各種內(nèi)部排序方法和特點(diǎn)。
    3學(xué)時(shí)選擇排序。
    掌握。
    2學(xué)時(shí)各種排序方法比較。
    掌握。
    2學(xué)時(shí)。
    實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)?zāi)繕?biāo)課時(shí)分配算法編程實(shí)驗(yàn):
    1、用指針方式編寫程序復(fù)習(xí)c(c++)語言指針、結(jié)構(gòu)體等的用法。
    2、對單鏈表進(jìn)行遍歷。
    鏈表的描述與操作實(shí)現(xiàn)。
    3、棧及其操作。
    描述方法及操作。
    4、編寫串子系統(tǒng)1串的特點(diǎn)及順序定長存儲、操作、查找。
    5、編寫串子系統(tǒng)2串的特點(diǎn)及順序定長存儲、操作、查找。
    6、編寫樹子系統(tǒng)1二叉樹的特點(diǎn)及存儲方式、創(chuàng)建、顯示、遍歷等。
    7、編寫樹子系統(tǒng)2二叉樹的特點(diǎn)及存儲方式、創(chuàng)建、顯示、遍歷等。
    8、圖子系統(tǒng)。
    圖的鄰接矩陣的存儲、遍歷、廣度/深度優(yōu)先搜索。
    9、查找子系統(tǒng)。
    理解查找基本算法、平均查找長度、靜態(tài)、動態(tài)查找等。
    五、考試范圍與題型。
    1、考試范圍與分?jǐn)?shù)比例。
    1)緒論。
    12%2)線性表。
    17%3)棧。
    7%4)隊(duì)列。
    6%5)串。
    4%6)樹和二叉樹。
    14%7)圖。
    15%8)查找。
    4%9)排序。
    21%。
    2、考試題型與分?jǐn)?shù)比例。
    1)名詞解釋。
    18%2)判斷對錯(cuò)。
    16%3)填空。
    16%4)單項(xiàng)選擇。
    18%5)應(yīng)用。
    32%。
    六、教材與參考資料。
    1、教材:實(shí)用數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)(譚浩強(qiáng))中國鐵道出版社。
    2、參考資料:數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏)清華大學(xué)出版社。
    (撰寫人:
    審核人:2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí)2學(xué)時(shí))。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇九
    作為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)過程中,我深刻地認(rèn)識到了數(shù)據(jù)結(jié)構(gòu)的重要性。數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)的基礎(chǔ),也是程序員必備的核心知識。在通過課堂學(xué)習(xí)和實(shí)踐項(xiàng)目的同時(shí),我逐漸積累了一些關(guān)于數(shù)據(jù)結(jié)構(gòu)的心得體會。
    首先,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)需要理論與實(shí)踐相結(jié)合。理論知識是數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的基礎(chǔ),只有理解了各種數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)和應(yīng)用場景,才能更好地使用它們。在學(xué)習(xí)過程中,我深刻體會到了課堂知識和實(shí)際應(yīng)用的融合。通過書本中的案例分析和算法推導(dǎo),我對數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)有了初步的認(rèn)識;而通過實(shí)踐項(xiàng)目的參與,我更深入地理解了數(shù)據(jù)結(jié)構(gòu)的實(shí)際應(yīng)用。這種理論與實(shí)踐相結(jié)合的學(xué)習(xí)方式,使我在數(shù)據(jù)結(jié)構(gòu)方面取得了較為顯著的進(jìn)步。
    其次,堅(jiān)持動手實(shí)踐是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不僅僅是掌握理論知識,更重要的是能夠靈活運(yùn)用所學(xué)的知識解決實(shí)際問題。在我的數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)過程中,我通過編寫各種算法程序來鞏固和應(yīng)用所學(xué)的知識。通過實(shí)踐項(xiàng)目,我學(xué)會了如何根據(jù)實(shí)際情況選擇合適的數(shù)據(jù)結(jié)構(gòu),并使用不同的算法來解決問題。在實(shí)踐的過程中,我也經(jīng)常遇到各種困難和問題,但正是通過一遍又一遍地調(diào)試和優(yōu)化,我得以更好地理解數(shù)據(jù)結(jié)構(gòu)的應(yīng)用原理,提高了編程能力。
    第三,良好的代碼規(guī)范和注釋是保證程序質(zhì)量的關(guān)鍵。在編寫數(shù)據(jù)結(jié)構(gòu)的代碼過程中,我漸漸意識到了良好的代碼規(guī)范和注釋對于程序質(zhì)量的重要性。在實(shí)踐項(xiàng)目中,有時(shí)需要多人合作開發(fā),良好的代碼規(guī)范可以使團(tuán)隊(duì)成員之間更好地協(xié)同合作。另外,良好的注釋能夠讓自己和他人更加容易理解代碼的功能和實(shí)現(xiàn)思路,提高了代碼的可讀性和可維護(hù)性。因此,在實(shí)踐中,我始終將代碼規(guī)范和注釋作為重要的一環(huán),力求編寫出高質(zhì)量的代碼。
    第四,不斷學(xué)習(xí)和更新是數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的要求。數(shù)據(jù)結(jié)構(gòu)是一個(gè)廣闊而深邃的領(lǐng)域,新的數(shù)據(jù)結(jié)構(gòu)和算法層出不窮。因此,作為一個(gè)學(xué)習(xí)者,要不斷跟進(jìn)和學(xué)習(xí)最新的知識,緊跟科技發(fā)展的步伐。除了自習(xí)和實(shí)踐外,我還積極參與各種學(xué)術(shù)討論和博客分享,不斷與其他同學(xué)交流學(xué)習(xí),拓寬自己的思路和知識面。通過這樣的不斷學(xué)習(xí)和更新,我逐漸提高了自己的數(shù)據(jù)結(jié)構(gòu)水平,并且在實(shí)踐中得到了進(jìn)一步的錘煉。
    最后,數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)編程的基石,理解和掌握了數(shù)據(jù)結(jié)構(gòu),才能在編程的道路上越走越遠(yuǎn)。數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)并不是一蹴而就的,需要不斷的練習(xí)和實(shí)踐才能真正掌握。通過我的學(xué)習(xí)經(jīng)歷,我深刻體會到了數(shù)據(jù)結(jié)構(gòu)的重要性和應(yīng)用價(jià)值。數(shù)據(jù)結(jié)構(gòu)是一門基礎(chǔ)而又實(shí)用的學(xué)科,它承載著計(jì)算機(jī)科學(xué)的眾多算法和思想,對于提高編程能力和解決實(shí)際問題有著重要的作用。
    綜上所述,數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)需要理論與實(shí)踐相結(jié)合,需要堅(jiān)持動手實(shí)踐,需要注重代碼規(guī)范和注釋,需要不斷學(xué)習(xí)和更新。我相信通過不懈努力和實(shí)踐,我將能夠在數(shù)據(jù)結(jié)構(gòu)這個(gè)領(lǐng)域取得更大的突破和進(jìn)步。數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)并不是終點(diǎn),而是一個(gè)跳板,讓我們能夠更好地應(yīng)對計(jì)算機(jī)科學(xué)中的各種挑戰(zhàn)和問題。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇十
    這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,雖然上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識。上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識。數(shù)據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,但我覺得我們一低計(jì)算機(jī)里一門基礎(chǔ)課程定要把基礎(chǔ)學(xué)扎實(shí),定要把基礎(chǔ)學(xué)扎實(shí),然而這次短短的上機(jī)幫我又重新鞏固了c語言知識,讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門語言知識讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門知識,純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。它對我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。我選的上機(jī)題目是交叉合并兩個(gè)鏈表,對這個(gè)題目,我選的上機(jī)題目是交叉合并兩個(gè)鏈表,對這個(gè)題目,我覺得很基礎(chǔ)。剛開始調(diào)試代碼的時(shí)候有時(shí)就是一個(gè)很小的錯(cuò)覺得很基礎(chǔ)。剛開始調(diào)試代碼的時(shí)候有時(shí)就是一個(gè)很小的錯(cuò)調(diào)試代碼的時(shí)候誤,導(dǎo)致整個(gè)程序不能運(yùn)行,然而開始的我還沒從暑假的狀導(dǎo)致整個(gè)程序不能運(yùn)行,態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯(cuò)誤時(shí)我都非常焦躁,態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯(cuò)誤時(shí)我都非常焦躁,甚至想到了放棄,但我最終找到了狀態(tài),一步一步慢慢來,放棄,但我最終找到了狀態(tài),一步一步慢慢來,經(jīng)過無數(shù)次的檢查程序錯(cuò)誤的原因后慢慢懂得了耐心是一個(gè)人成功的必然具備的條件!同時(shí),通過此次課程設(shè)計(jì)使我了解到,必然具備的條件!同時(shí),通過此次課程設(shè)計(jì)使我了解到,硬件語言必不可缺少,要想成為一個(gè)有能力的人,必須懂得件語言必不可缺少,要想成為一個(gè)有能力的人,硬件基礎(chǔ)語言。在這次課程設(shè)計(jì)中,硬件基礎(chǔ)語言。在這次課程設(shè)計(jì)中,雖然不會成功的編寫一個(gè)完整的程序,但是在看程序的過程中,個(gè)完整的程序,但是在看程序的過程中,不斷的上網(wǎng)查資料以及翻閱相關(guān)書籍,通過不斷的模索,測試,發(fā)現(xiàn)問題,以及翻閱相關(guān)書籍,通過不斷的模索,測試,發(fā)現(xiàn)問題,解決問題和在老師的幫助下一步一步慢慢的正確運(yùn)行程序,決問題和在老師的幫助下一步一步慢慢的正確運(yùn)行程序,終于完成了這次課程設(shè)計(jì),于完成了這次課程設(shè)計(jì),雖然這次課程設(shè)計(jì)結(jié)束了但是總覺得自已懂得的知識很是不足,學(xué)無止境,得自已懂得的知識很是不足,學(xué)無止境,以后還會更加的努力深入的學(xué)習(xí)。力深入的學(xué)習(xí)。
    本次課程設(shè)計(jì),使我對《數(shù)據(jù)結(jié)構(gòu)》這門課程有了更深入的理解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識的同時(shí),加強(qiáng)上機(jī)實(shí)踐。
    我的課程設(shè)計(jì)題目是線索二叉樹的運(yùn)算。剛開始做這個(gè)程序的時(shí)候,感到完全無從下手,甚至讓我覺得完成這次程序設(shè)計(jì)根本就是不可能的,于是開始查閱各種資料以及參考文獻(xiàn),之后便開始著手寫程序,寫完運(yùn)行時(shí)有很多問題。特別是實(shí)現(xiàn)線索二叉樹的刪除運(yùn)算時(shí)很多情況沒有考慮周全,經(jīng)常運(yùn)行出現(xiàn)錯(cuò)誤,但通過同學(xué)間的幫助最終基本解決問題。
    在本課程設(shè)計(jì)中,我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識的能力。并對vc有了更深入的了解。《數(shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(xùn)練。此外,還有更重要的一點(diǎn)是:機(jī)器是比任何教師更嚴(yán)厲的檢查者。因此,在“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)過程中,必須嚴(yán)格按照老師的要求,主動地、積極地、認(rèn)真地做好每一個(gè)實(shí)驗(yàn),以不斷提高自己的編程能力與專業(yè)素質(zhì)。
    通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時(shí)間上機(jī)練習(xí)。這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動手能力,使我掌握了程序設(shè)計(jì)的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。
    總的來說,這次課程設(shè)計(jì)讓我獲益匪淺,對數(shù)據(jù)結(jié)構(gòu)也有了進(jìn)一步的理解和認(rèn)識。
    通過本次課程設(shè)計(jì),對圖的概念有了一個(gè)新的認(rèn)識,在學(xué)習(xí)離散數(shù)學(xué)的時(shí)候,總覺得圖是很抽象的東西,但是在學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程之后,我慢慢地體會到了其中的奧妙,圖能夠在計(jì)算機(jī)中存在,首先要捕捉他有哪些具體化、數(shù)字化的信息,比如說權(quán)值、頂點(diǎn)個(gè)數(shù)等,這也就說明了想要把生活中的信息轉(zhuǎn)化到計(jì)算機(jī)中必須用數(shù)字來完整的構(gòu)成一個(gè)信息庫,而圖的存在,又涉及到了頂點(diǎn)之間的聯(lián)系。圖分為有向圖和無向圖,而無向圖又是有向圖在權(quán)值雙向相等下的一種特例,如何能在計(jì)算機(jī)中表示一個(gè)雙向權(quán)值不同的圖,這就是一件很巧妙的事情,經(jīng)過了思考和老師同學(xué)的幫助,我用edges[i][j]=up和edges[j][i]=up就能實(shí)現(xiàn)了一個(gè)雙向圖信息的存儲。對整個(gè)程序而言,dijkstra算法始終都是核心內(nèi)容,其實(shí)這個(gè)算法在實(shí)際思考中并不難,也許我們誰都知道找一個(gè)路徑最短的方法,及從頂點(diǎn)一步一步找最近的路線并與其直接距離相比較,但是,在計(jì)算機(jī)中實(shí)現(xiàn)這么一個(gè)很簡單的想法就需要涉及到很多專業(yè)知識,為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c語言為主,所以浪費(fèi)了很多時(shí)間,比如說在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見在調(diào)用知識點(diǎn),我沒有掌握好。不過,有了這次課程設(shè)計(jì)的經(jīng)驗(yàn)和教訓(xùn),我能夠很清楚的對自己定一個(gè)合適的水平,而且在這次課程設(shè)計(jì)中我學(xué)會了運(yùn)用兩個(gè)新的函數(shù)sprintf和包涵在#include頭文件中的輸入函數(shù)。因?yàn)檎n程設(shè)計(jì)的題目是求最短路徑,本來是想通過算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬聿患安檎腋鞯氐男畔?,所以,這個(gè)計(jì)劃就沒有實(shí)現(xiàn),我相信在以后有更長時(shí)間的情況下,我會做出來的。
    時(shí)光荏苒,如白駒過隙般匆匆而去,眼看的一年實(shí)習(xí)生活馬上就要成為美好的回憶。在這短短一年的時(shí)間里我感覺自己成長了許多,從象牙塔邁出的第一步走的特別的穩(wěn)重,感謝學(xué)校給我提供了一個(gè)努力拼搏的舞臺,讓我學(xué)會了如何面對這個(gè)真實(shí)的社會,實(shí)現(xiàn)了從在校學(xué)子向職場人士的轉(zhuǎn)變。
    實(shí)習(xí)是繼中考后又一個(gè)人生的十字路口,它意味著人生一個(gè)新時(shí)期的到來——告別學(xué)校走入社會。社會是個(gè)大的集合,不管是以前的學(xué)校還是現(xiàn)在的實(shí)習(xí)單位都同屬這個(gè)集合。這幾個(gè)月來,給我感覺學(xué)校純一點(diǎn),單位復(fù)雜一點(diǎn)。不過我知道不論學(xué)校還是單位其實(shí)都是社會的縮影。實(shí)習(xí)的真正目的就是讓我們這些在校的學(xué)生走入社會。社會是形形色色、方方面面的,你要學(xué)會的是適應(yīng)這個(gè)社會而不是讓這個(gè)社會適應(yīng)你。
    剛剛走進(jìn)社會不適應(yīng)是正常的。人有的時(shí)候很奇怪:心情或者更準(zhǔn)確地說是熱情往往會因時(shí)間、環(huán)境、所經(jīng)歷的事而起伏。就像我對境界一詞的理解:人與他所受教育、所處環(huán)境、所經(jīng)歷對事物的理解、判斷、預(yù)知的程度就是這個(gè)人的境界。
    作為一名中專生,專業(yè)需求的建筑認(rèn)識實(shí)訓(xùn)開始了,我們?nèi)珜I(yè)的同學(xué)在__的各大建筑工地認(rèn)識實(shí)習(xí),對于我當(dāng)初選擇土木工程這樣的專業(yè),說真的我并不知道什么是土木工程?,F(xiàn)在我對土木工程有了基本的感性認(rèn)識了,我想任何事的認(rèn)識都是通過感性認(rèn)識上升到理性認(rèn)識的,這次認(rèn)識實(shí)習(xí)應(yīng)該是一個(gè)鍛煉的好機(jī)會!
    土木工程是建造各類工程設(shè)施的學(xué)科、技術(shù)和工程的總稱。它既指與與人類生活、生產(chǎn)活動有關(guān)的各類工程設(shè)施,如建筑公程、公路與城市道路工程、鐵路工程、橋梁工程、隧道工程等,也指應(yīng)用材料、設(shè)備在土地上所進(jìn)行的勘測、設(shè)計(jì)、施工等工程技術(shù)活動。
    我應(yīng)該知道現(xiàn)在的我還不夠成熟,如果說人生是一片海洋,那么我應(yīng)該在這片海洋里劈波斬浪,揚(yáng)帆遠(yuǎn)航而不是躲在避風(fēng)港里。只要經(jīng)歷多了,我就會成熟;我就會變強(qiáng)。我相信。那時(shí)的成功是領(lǐng)導(dǎo)、師傅們給我鼓勵(lì),是實(shí)習(xí)的經(jīng)歷給我力量,所以我感謝領(lǐng)導(dǎo)師傅還有我的好朋友們,也感謝學(xué)校給我這次實(shí)習(xí)的機(jī)會。
    一年的實(shí)習(xí)生活中,緊張過,努力過,醒悟過,開心過。這些從為有過的經(jīng)歷讓我進(jìn)步了,成長了。學(xué)會了一些在學(xué)校從未學(xué)過以后也學(xué)不到的東西,也有很多的感悟。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇十一
    數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)中的重要基礎(chǔ)知識,它能幫助我們有效地組織和存儲數(shù)據(jù),以便更高效地進(jìn)行操作和訪問。在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過程中,我逐漸認(rèn)識到了它的重要性和實(shí)際應(yīng)用價(jià)值。下面我將結(jié)合自己的學(xué)習(xí)經(jīng)歷,分享一些關(guān)于數(shù)據(jù)結(jié)構(gòu)的心得體會。
    首先,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí),我意識到了算法和數(shù)據(jù)結(jié)構(gòu)之間的緊密聯(lián)系。算法是解決問題的步驟序列,在實(shí)際應(yīng)用中,算法的效率取決于所選擇的數(shù)據(jù)結(jié)構(gòu)。不同的數(shù)據(jù)結(jié)構(gòu)適用于不同類型的問題,如棧適用于括號匹配、隊(duì)列適用于廣度優(yōu)先搜索等。因此,在解決問題時(shí),選擇合適的數(shù)據(jù)結(jié)構(gòu)對算法的效率起著至關(guān)重要的作用。
    其次,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)也讓我明白了程序的內(nèi)存管理問題。在不合理的內(nèi)存分配和釋放下,程序可能產(chǎn)生內(nèi)存泄漏和內(nèi)存溢出等問題,導(dǎo)致程序崩潰。而數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)往往直接涉及到內(nèi)存的使用和管理。比如,鏈表節(jié)點(diǎn)的申請和釋放,樹的遍歷時(shí)需要大量的遞歸調(diào)用等。因此,合理地設(shè)計(jì)和使用數(shù)據(jù)結(jié)構(gòu)可以避免這些內(nèi)存管理問題,提高程序的穩(wěn)定性和性能。
    另外,數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)還能夠幫助我們解決實(shí)際的問題。在現(xiàn)實(shí)生活中,我們經(jīng)常會遇到需要處理大量數(shù)據(jù)的情況,如圖書館的借書管理系統(tǒng)、電商平臺的訂單處理等。如果不使用適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),這些問題將會變得異常困難。而數(shù)據(jù)結(jié)構(gòu)提供了一種抽象的方法來解決這些問題,比如使用棧來模擬函數(shù)調(diào)用,使用哈希表來查詢數(shù)據(jù)等。掌握了數(shù)據(jù)結(jié)構(gòu),我們就可以更好地設(shè)計(jì)和實(shí)現(xiàn)這些系統(tǒng),提高程序的效率和可靠性。
    此外,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)還促使我反思程序設(shè)計(jì)的靈活性和可擴(kuò)展性。在實(shí)際項(xiàng)目中,需求的變更和程序的擴(kuò)展是常見的。而數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)往往也會受到這些變化的影響。因此,一個(gè)好的數(shù)據(jù)結(jié)構(gòu)應(yīng)該具備良好的靈活性和可擴(kuò)展性。比如,我曾經(jīng)在一個(gè)項(xiàng)目中使用了動態(tài)數(shù)組,當(dāng)數(shù)據(jù)量變得很大時(shí),動態(tài)數(shù)組的性能就會變得很差。后來,我使用了鏈表來替代動態(tài)數(shù)組,大大提高了程序的性能。這個(gè)經(jīng)歷讓我認(rèn)識到,在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí),要考慮到未來的擴(kuò)展和變化,選擇合適的數(shù)據(jù)結(jié)構(gòu)來滿足需求。
    綜上所述,數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)中的重要學(xué)科,它在我們的日常開發(fā)工作中起著至關(guān)重要的作用。通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我深刻認(rèn)識到算法與數(shù)據(jù)結(jié)構(gòu)的關(guān)聯(lián),程序的內(nèi)存管理,實(shí)際問題的解決以及程序設(shè)計(jì)的靈活性與可擴(kuò)展性。數(shù)據(jù)結(jié)構(gòu)不僅是計(jì)算機(jī)科學(xué)的基礎(chǔ),更是實(shí)際應(yīng)用中解決問題的重要工具。通過不斷學(xué)習(xí)和實(shí)踐,我相信自己在數(shù)據(jù)結(jié)構(gòu)方面的能力將不斷提高,為解決實(shí)際問題提供更好的解決方案。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇十二
    考試形式:半開卷考試講課對象:計(jì)算機(jī)本科。
    建議教材:《數(shù)據(jù)結(jié)構(gòu)》(c語言版)陳明編著清華大學(xué)出版社。
    課程簡介:數(shù)據(jù)結(jié)構(gòu)課程介紹如何組織各種數(shù)據(jù)在計(jì)算機(jī)中的存儲、傳遞和轉(zhuǎn)換。內(nèi)容包括:數(shù)組、鏈接表、棧和隊(duì)列、串、樹與森林、圖、排序、查找、索引與散列結(jié)構(gòu)等。課程以結(jié)構(gòu)化程序設(shè)計(jì)語言c語言作為算法的描述工具,強(qiáng)化數(shù)據(jù)結(jié)構(gòu)基本知識和結(jié)構(gòu)化程序設(shè)計(jì)基本能力的雙基訓(xùn)練。為后續(xù)計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
    二、課程的教學(xué)目標(biāo)。
    “數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)相關(guān)專業(yè)的一門重要專業(yè)基礎(chǔ)課,是計(jì)算機(jī)學(xué)科的公認(rèn)主干課。課程內(nèi)容由數(shù)據(jù)結(jié)構(gòu)和算法分析初步兩部分組成。
    數(shù)據(jù)結(jié)構(gòu)是針對處理大量非數(shù)值性程序問題而形成的一門學(xué)科,內(nèi)涵豐富、應(yīng)用范圍廣。它既有完整的學(xué)科體系和學(xué)科深度,又有較強(qiáng)的實(shí)踐性。通過課程的學(xué)習(xí),應(yīng)使學(xué)生理解和掌握各種數(shù)據(jù)結(jié)構(gòu)(物理結(jié)構(gòu)和邏輯結(jié)構(gòu))的概念及其有關(guān)的算法;熟悉并了解目前常用數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)諸多領(lǐng)域中的基本應(yīng)用。
    算法分析強(qiáng)調(diào)最基本的算法設(shè)計(jì)技術(shù)和分析方法。要求學(xué)生從算法和數(shù)據(jù)結(jié)構(gòu)的相互依存關(guān)系中把握應(yīng)用算法設(shè)計(jì)的藝術(shù)和技能。
    經(jīng)過上機(jī)實(shí)習(xí)和課程設(shè)計(jì)的訓(xùn)練,使學(xué)生能夠編制、調(diào)試具有一定難度的中型程序;以培養(yǎng)良好的軟件工程習(xí)慣和面向?qū)ο蟮能浖季S方法。
    “數(shù)據(jù)結(jié)構(gòu)”的前序課是《離散數(shù)學(xué)》、《c語言程序設(shè)計(jì)與算法初步》。
    三、理論教學(xué)內(nèi)容的基本要求及學(xué)時(shí)分配。
    1、序論(2學(xué)時(shí))學(xué)習(xí)目標(biāo):熟悉各類文件的特點(diǎn),構(gòu)造方法以及如何實(shí)現(xiàn)檢索,插入和刪除等操作。
    重點(diǎn)與難點(diǎn):本章無。
    知識點(diǎn):數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型、抽象數(shù)據(jù)類型、算法及其設(shè)計(jì)原則、時(shí)間復(fù)雜度、空間復(fù)雜度。
    2、線性表(4學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):
    (4)結(jié)合線性表類型的定義增強(qiáng)對抽象數(shù)據(jù)類型的理解。
    重點(diǎn)與難點(diǎn):鏈表是本章的重點(diǎn)和難點(diǎn)。扎實(shí)的指針操作和內(nèi)存動態(tài)分配的編程技術(shù)是學(xué)好本章的基本要求,分清鏈表中指針p和結(jié)點(diǎn)*p之間的對應(yīng)關(guān)系,區(qū)分鏈表中的頭結(jié)點(diǎn)、頭指針和首元結(jié)點(diǎn)的不同所指以及循環(huán)鏈表、雙向鏈表的特點(diǎn)等。
    知識點(diǎn):線性表、順序表、鏈表、有序表。
    3、棧和隊(duì)列(4學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):
    (1)掌握棧和隊(duì)列這兩種抽象數(shù)據(jù)類型的特點(diǎn),并能在相應(yīng)的應(yīng)用問題中正確選用它們;
    (2)熟練掌握棧類型的兩種實(shí)現(xiàn)方法;
    (3)熟練掌握循環(huán)隊(duì)列和鏈隊(duì)列的基本操作實(shí)現(xiàn)算法;(4)理解遞歸算法執(zhí)行過程中棧的狀態(tài)變化過程。
    重點(diǎn)與難點(diǎn):棧和隊(duì)列是在程序設(shè)計(jì)中被廣泛使用的兩種線性數(shù)據(jù)結(jié)構(gòu),因此本章的學(xué)習(xí)重點(diǎn)在于掌握這兩種結(jié)構(gòu)的特點(diǎn),以便能在應(yīng)用問題中正確使用。
    知識點(diǎn):順序棧、鏈棧、循環(huán)隊(duì)列、鏈隊(duì)列。
    4、串(2學(xué)時(shí))。
    (2)理解串類型的各種存儲表示方法;(3)理解串匹配的各種算法。
    重點(diǎn)和難點(diǎn):相對于其它各個(gè)知識點(diǎn)而言,本章非整個(gè)課程的重點(diǎn),鑒于串已是多數(shù)高級語言中已經(jīng)實(shí)現(xiàn)的數(shù)據(jù)類型,因此本章重點(diǎn)僅在于了解串類型定義中各基本操作的定義以及串的實(shí)現(xiàn)方法,并學(xué)會利用這些基本操作來實(shí)現(xiàn)串的其它操作。本章的難點(diǎn)是理解實(shí)現(xiàn)串匹配的kmp算法的思想。
    知識點(diǎn):串的類型定義、串的存儲表示、串匹配、kmp算法。
    5、數(shù)組和廣義表(4學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):
    (2)掌握特殊矩陣的存儲壓縮表示方法;
    (3)理解稀疏矩陣的兩類存儲壓縮方法的特點(diǎn)及其適用范圍,領(lǐng)會以三元組表示稀疏矩陣時(shí)進(jìn)行矩陣運(yùn)算所采用的處理方法。
    重點(diǎn)和難點(diǎn):本章重點(diǎn)是學(xué)習(xí)數(shù)組類型的定義及其存儲表示。
    知識點(diǎn):數(shù)組的類型定義、數(shù)組的存儲表示、特殊矩陣的壓縮存儲表示方法、隨機(jī)稀疏矩陣的壓縮存儲表示方法。
    6、樹和二叉樹(8學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):
    (3)熟練掌握二叉樹的各種遍歷算法,并能靈活運(yùn)用遍歷算法實(shí)現(xiàn)二叉樹的其它操作;
    (4)理解二叉樹的線索化過程以及在中序線索化樹上找給定結(jié)點(diǎn)的前驅(qū)和后繼的方法;
    (7)了解最優(yōu)樹的特性,掌握建立最優(yōu)樹和赫夫曼編碼的方法。
    重點(diǎn)和難點(diǎn):二叉樹和樹的遍歷及其應(yīng)用是本章的學(xué)習(xí)重點(diǎn),而編寫實(shí)現(xiàn)二叉樹和樹的各種操作的遞歸算法也恰是本章的難點(diǎn)所在。
    知識點(diǎn):樹的類型定義、二叉樹的類型定義、二叉樹的存儲表示、二叉樹的遍歷以及其它操作的實(shí)現(xiàn)、線索二叉樹、樹和森林的存儲表示、樹和森林的遍歷以及其它操作的實(shí)現(xiàn)、最優(yōu)樹和赫夫曼編碼。
    7、圖(8學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):
    (1)領(lǐng)會圖的類型定義;
    (2)熟悉圖的各種存儲結(jié)構(gòu)及其構(gòu)造算法,了解各種存儲結(jié)構(gòu)的特點(diǎn)及其選用原則;
    (3)熟練掌握圖的兩種遍歷算法;(4)理解各種圖的應(yīng)用問題的算法。
    重點(diǎn)和難點(diǎn):圖的應(yīng)用極為廣泛,而且圖的各種應(yīng)用問題的算法都比較經(jīng)典,因此本章重點(diǎn)在于理解各種圖的算法及其應(yīng)用場合。
    知識點(diǎn):圖的類型定義、圖的存儲表示、圖的深度優(yōu)先搜索遍歷和圖的廣度優(yōu)先搜索遍歷、無向網(wǎng)的最小生成樹、最短路徑、拓?fù)渑判?、關(guān)鍵路徑。
    8、查找(6學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):
    (3)熟悉靜態(tài)查找樹的構(gòu)造方法和查找算法,理解靜態(tài)查找樹和折半查找的關(guān)系;
    (4)熟練掌握二叉查找樹的構(gòu)造和查找方法;(5)理解二叉平衡樹的構(gòu)造過程;
    (6)熟練掌握哈希表的構(gòu)造方法,深刻理解哈希表與其它結(jié)構(gòu)的表的實(shí)質(zhì)性的差別;
    (7)掌握描述查找過程的判定樹的構(gòu)造方法,以及按定義計(jì)算各種查找方法在等概率情況下查找成功時(shí)的平均查找長度。
    重點(diǎn)和難點(diǎn):本章重點(diǎn)在于理解查找表的結(jié)構(gòu)特點(diǎn)及其各種表示方法的特點(diǎn)和適用場合。
    知識點(diǎn):順序表、有序表、索引順序表、靜態(tài)查找樹、二叉查找樹、二叉平衡樹、哈希表。
    9、內(nèi)部排序(6學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):
    (3)理解排序方法“穩(wěn)定”或“不穩(wěn)定”的含義,弄清楚在什么情況下要求應(yīng)用的排序方法必須是穩(wěn)定的。
    重點(diǎn)和難點(diǎn):希爾排序、快速排序、堆排序和歸并排序等高效方法是本章的學(xué)習(xí)重點(diǎn)和難點(diǎn)。
    知識點(diǎn):排序、直接插入排序、折半插入排序、表插入排序、希爾排序、起泡排序、快速排序、簡單選擇排序、堆排序、2-路歸并排序、基數(shù)排序、排序方法的綜合比較。
    10、文件(4學(xué)時(shí))。
    學(xué)習(xí)目標(biāo):熟悉各類文件的特點(diǎn),構(gòu)造方法以及如何實(shí)現(xiàn)檢索,插入和刪除等操作。
    重點(diǎn)和難點(diǎn):本章重點(diǎn)在于了解各種文件的結(jié)構(gòu)特點(diǎn)及其適用場合。知識點(diǎn):順序文件、索引文件、b-樹、b+樹、索引順序文件、vsam文件、散列文件、多關(guān)鍵字文件。
    四、實(shí)驗(yàn)教學(xué)內(nèi)容的基本要求及學(xué)時(shí)分配。
    1、線性表(1學(xué)時(shí))實(shí)驗(yàn)一順序表的應(yīng)用實(shí)驗(yàn)二鏈表的應(yīng)用。
    要求:理解線性表的定義及其運(yùn)算;理解順序表和鏈表的定義,組織形式,結(jié)構(gòu)特征和類型說明;掌握在這兩種表上實(shí)現(xiàn)的插入,刪除和按值查找的算法;了解循環(huán)鏈表,雙(循環(huán))鏈表的結(jié)構(gòu)特點(diǎn)和在其上施加的插入,刪除等操作。
    2、棧(0.5學(xué)時(shí))實(shí)驗(yàn)三棧的應(yīng)用。
    要求:理解棧的定義,特征及在其上所定義的基本運(yùn)算;掌握在兩種存儲結(jié)構(gòu)上對棧所施加的基本運(yùn)算的實(shí)現(xiàn)。
    3、隊(duì)列(0.5學(xué)時(shí))實(shí)驗(yàn)四隊(duì)列的應(yīng)用。
    要求:理解隊(duì)列的定義,特征及在其上所定義的基本運(yùn)算;掌握在兩種存儲結(jié)構(gòu)上對隊(duì)列所施加的基本運(yùn)算的實(shí)現(xiàn)。
    4、串(0.5學(xué)時(shí))實(shí)驗(yàn)五串的應(yīng)用。
    要求:了解串的定義;理解和領(lǐng)會串的存儲方式;掌握常用的串運(yùn)算。
    5、數(shù)組和廣義表(0.5學(xué)時(shí))實(shí)驗(yàn)六稀疏矩陣的應(yīng)用。
    要求:理解多維數(shù)組的結(jié)構(gòu)特點(diǎn)和在內(nèi)存中的兩種順序存儲方式;理解并掌握矩陣和特殊矩陣元素在存儲區(qū)中地址的計(jì)算;領(lǐng)會稀疏矩陣的壓縮方式和簡單運(yùn)算;了解廣義表的定義和基本運(yùn)算。
    6、樹與二叉樹(4學(xué)時(shí))實(shí)驗(yàn)七樹與二叉樹的應(yīng)用。
    要求:理解樹的定義,術(shù)語;領(lǐng)會并掌握樹的各種存儲結(jié)構(gòu);熟練掌握森林與二叉樹間的相互轉(zhuǎn)換;領(lǐng)會樹和森林的遍歷;了解樹的簡單應(yīng)用。深刻理解二叉樹的定義,性質(zhì)及其存儲方法;熟練掌握二叉樹的二叉鏈表存儲方式,結(jié)點(diǎn)結(jié)構(gòu)和類型定義;理解并掌握二叉樹的三種遍歷算法;掌握二叉樹的線索化方法;靈活運(yùn)用二叉樹的遍歷方法解決相關(guān)的應(yīng)用問題。
    7、圖(3學(xué)時(shí))實(shí)驗(yàn)八圖的應(yīng)用。
    要求:理解圖的基本概念及術(shù)語;掌握圖的兩種存儲結(jié)構(gòu)(鄰接矩陣和鄰接表)的表示方法;熟練掌握圖的兩種遍歷(深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷)的算法思想,步驟,并能列出在兩種存儲結(jié)構(gòu)上按上述兩種遍歷算法得到的序列;理解最小生成樹的概念,能按prim算法構(gòu)造最小生成樹;領(lǐng)會并掌握拓?fù)渑判?,關(guān)鍵路徑,最短路徑的算法思想。
    8、查找(3學(xué)時(shí))實(shí)驗(yàn)九順序查找實(shí)驗(yàn)十折半查找實(shí)驗(yàn)十一哈希表的應(yīng)用實(shí)驗(yàn)十二二叉排序樹的綜合練習(xí)要求:了解查找的基本思想及查找成功和不成功的概念;掌握在順序表,有序表,索引表,散列表等上的查找方法和算法,并能求出相應(yīng)的平均查找長度;理解并掌握二叉排序樹,平衡二叉樹b-樹的各種算法。
    9、排序(3學(xué)時(shí))實(shí)驗(yàn)十三插入排序?qū)嶒?yàn)十四選擇排序?qū)嶒?yàn)十五排序綜合練習(xí)。
    要求:領(lǐng)會排序的基本思想和基本概念;理解并掌握插入排序,冒泡排序,快速排序,直接選擇排序,堆排序,歸并排序和基數(shù)排序的基本思想,步驟,算法及時(shí)空效率分析;了解外排序的定義和基本方法。
    五、大綱說明。
    1、課堂講述的論題只是核心或有特色的知識內(nèi)容,還有相當(dāng)數(shù)量的篇章內(nèi)容留給學(xué)生自學(xué),所確定的自學(xué)部分內(nèi)容亦屬考查范圍。
    2、“數(shù)據(jù)結(jié)構(gòu)”課注重上機(jī)訓(xùn)練,所有作業(yè)都必須配有規(guī)范的文檔。上機(jī)訓(xùn)練由平時(shí)的上機(jī)訓(xùn)練和小學(xué)期的實(shí)訓(xùn)課程設(shè)計(jì)兩部分組成。
    3、課內(nèi)學(xué)時(shí)安排說明:前8周每周4學(xué)時(shí)全為理論課,從第9周開始理論和上機(jī)為1:1,也即2學(xué)時(shí)理論,2學(xué)時(shí)上機(jī)訓(xùn)練。
    4、本課強(qiáng)調(diào)能力的培養(yǎng),期末采用半開卷考試(允許同學(xué)攜帶一頁a4紙的總結(jié)資料)。本課成績由平時(shí)作業(yè)、上機(jī)成績(30%)和期末考試(70%)合成得到,有獨(dú)到見解的作業(yè)予以適當(dāng)加分。
    5、主要參考書:
    [1]《數(shù)據(jù)結(jié)構(gòu)與算法教程》鄒永林周蓓唐曉陽楊劍勇編著機(jī)械工業(yè)出版社。
    [2]《數(shù)據(jù)結(jié)構(gòu)(c語言版)》(含cd)嚴(yán)蔚敏吳為民編著清華大學(xué)出版社。
    [3]《數(shù)據(jù)結(jié)構(gòu)習(xí)題集(c語言版)》嚴(yán)蔚敏編著清華大學(xué)出版社。
    [4]《數(shù)據(jù)結(jié)構(gòu)習(xí)題解析與實(shí)訓(xùn)》張世和編著清華大學(xué)出版社。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇十三
    通過兩周的課程設(shè)計(jì),完成了預(yù)定的目標(biāo),其中有很多的隨想。老師的題目發(fā)下來的很早,大概提前了3周,當(dāng)時(shí)就著手搜索有關(guān)線索二叉樹的思想,思路,借了一本《數(shù)據(jù)結(jié)構(gòu)-c語言描述》,在大體上就有了一個(gè)輪廓,先是輸入二叉樹,在對二叉樹進(jìn)行線索化,依次往下,但在具體實(shí)現(xiàn)時(shí),遇到了很多問題:首先是思想的確定,其非常重要,以前有了這個(gè)想法,現(xiàn)在愈加清晰起來,因此,花了大量的時(shí)間在插入刪除的具體操作設(shè)計(jì)上,大概三個(gè)晚上的時(shí)間,對其中什么不清晰明確之處均加以推敲,效果是顯著的,在上機(jī)上相應(yīng)的節(jié)約了時(shí)間。
    通過具體的實(shí)驗(yàn)編碼,思路是對的,但是在小問題上摔了一次又一次,大部分時(shí)間都是花在這方面,這個(gè)節(jié)點(diǎn)沒傳過來啊之類的,以后應(yīng)該搞一個(gè)小冊子,記錄一些錯(cuò)誤的集合,以避免再犯,思想與c語言聯(lián)系起來,才是我們所需要的,即常說的理論與實(shí)踐的關(guān)系。
    數(shù)據(jù)結(jié)構(gòu)是基礎(chǔ)的一門課,對于有過編程經(jīng)驗(yàn)的人,結(jié)合自己的編程體會去悟它的思想;而且我覺得隨著編程經(jīng)歷的豐富對它的體會越深入,最初接觸是對一些思想可能只是生硬的記憶,隨著學(xué)習(xí)的深入逐漸領(lǐng)悟了很多??戳诉@次課程設(shè)計(jì)的`題目,雖然具體要求沒有看清,但是總結(jié)一下,可以看出,其需要我們能把一個(gè)具體案例或一件事情反映為程序來表達(dá),數(shù)據(jù)結(jié)構(gòu)就是橋梁,通過自己的設(shè)計(jì),使應(yīng)用能力得以融匯,對與問題,具有了初步的分析,繼而解決之的能力,感覺對以后的學(xué)習(xí)會有很大的幫助,學(xué)習(xí)無非是用于實(shí)踐。
    認(rèn)識到自己的不足,希望能有進(jìn)一步的發(fā)展。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇十四
    通過這次課程設(shè)計(jì)使我進(jìn)一步達(dá)到理論與實(shí)際相結(jié)合,提高了自己組織數(shù)據(jù)及編寫程序的能力,使我們能夠根據(jù)問題要求和數(shù)據(jù)對象的特性,學(xué)會數(shù)據(jù)組織的方法,把現(xiàn)實(shí)世界中的實(shí)際問題在計(jì)算機(jī)內(nèi)部表示出來并用軟件解決問題,培養(yǎng)良好的程序設(shè)計(jì)技能,掌握設(shè)計(jì)程序的思路,學(xué)會用計(jì)算機(jī)語言編寫程序,以實(shí)現(xiàn)所需處理的任務(wù),鍛煉自己的動腦能力,學(xué)會用自己的思路解決現(xiàn)實(shí)中的實(shí)際問題,雖然一開始也走了一些彎路不過在同學(xué)和老師的'點(diǎn)撥下完成了該程序,這次課程設(shè)計(jì)中遇到了很多問題,一開始準(zhǔn)備用二維數(shù)組存放的可考慮到同一個(gè)學(xué)校同一個(gè)項(xiàng)目有好幾個(gè)人參加,就不能用二維數(shù)組了,如果每個(gè)學(xué)校都申請一個(gè)二維數(shù)組也非常不方便,還是用順序表方便也不浪費(fèi)空間,在這次課程設(shè)計(jì)的過程中雖然很多次都參照了課本及資料,不過這使我更加熟悉了順序表以及結(jié)構(gòu)體的定義及實(shí)現(xiàn),調(diào)試過程中也遇到了一些問題也都是自己獨(dú)立思考完成的,還有一個(gè)體會是,遇到不會的地方可以參考課本也可以去圖書館或網(wǎng)上查資料,當(dāng)然主要思路有了也就簡單點(diǎn)了。在老師的答辯指指導(dǎo)下,程序數(shù)組那塊程序的書寫老師問我為什么是那樣的,當(dāng)時(shí)寫這塊程序的時(shí)候是看書上數(shù)組那塊程序再加上自己的主觀想法覺得就是這樣寫的,雖然這塊程序當(dāng)時(shí)那種主觀想法是寫對了,但是經(jīng)過老師的答辯提問才知道雖然是寫對了,但是這種思考和想法是錯(cuò)誤不科學(xué)的,真正的是因?yàn)榈?次循環(huán)是因?yàn)榈谝淮吾尫帕艘粋€(gè)。所以通過這次課程設(shè)計(jì)讓我懂得了一個(gè)很重要的道理,就是以后如果哪地方有一點(diǎn)迷惑,有一點(diǎn)不懂的地方不能憑自己主觀的思考和想法覺得應(yīng)該是這樣的,一定要找老師問清楚為什么是這樣的,一定要把每步每個(gè)小程序都要搞的十分的清楚,這真是個(gè)很好的收獲。還有就是這個(gè)程序的男女問題上,開始準(zhǔn)備在結(jié)構(gòu)體中加一個(gè)sex的點(diǎn),大使那樣對與男女項(xiàng)目還是有點(diǎn)麻煩,后來在同學(xué)的提醒下,通過參賽項(xiàng)目號就可以解決了,比m大就是女子項(xiàng)目,比m小或者等于m就是男子項(xiàng)目。這樣就可以很完美地解決這個(gè)問題了。
    其實(shí),當(dāng)你實(shí)驗(yàn)遇到問題時(shí),自己會通過很多途徑去解決它,沒有解決時(shí),心急如焚,解決之后的那種快感是前所未有的,這也許就是付出了行動之后的收獲吧!
    這也教會了我們以后在社會上,遇見了事情不可怕,只要不被困難擊倒,解決了它,那樣我們就是勝利的!
    xxx。
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇十五
    本學(xué)期開設(shè)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程已經(jīng)告一段落,現(xiàn)就其知識點(diǎn)及其掌握情況、學(xué)習(xí)體會以及對該門課程的教學(xué)建議等方面進(jìn)行學(xué)習(xí)總結(jié)。
    在課本的第一章便交代了該學(xué)科的相關(guān)概念,如數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)的定義。其中,數(shù)據(jù)結(jié)構(gòu)包括邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和運(yùn)算集合。邏輯結(jié)構(gòu)分為四類:集合型、線性、樹形和圖形結(jié)構(gòu),數(shù)據(jù)元素的存儲結(jié)構(gòu)分為:順序存儲、鏈接存儲、索引存儲和散列存儲四類。緊接著介紹了一些常用的數(shù)據(jù)運(yùn)算。最后著重介紹算法性能分析,包括算法的時(shí)間性能分析以及算法的空間性能分析。
    第二章具體地介紹了順序表的概念、基本運(yùn)算及其應(yīng)用?;具\(yùn)算有:初始化表、求表長、排序、元素的查找、插入及刪除等。元素查找方法有:簡單順序查找、二分查找和分塊查找。排序方法有:直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序及歸并排序等。最后介紹了順序串的概念,重點(diǎn)在于串的模式匹配。
    鏈表中數(shù)據(jù)元素的存儲不一定是連續(xù)的,還可以占用任意的、不連續(xù)的物理存儲區(qū)域。與順序表相比,鏈表的插入、刪除不需要移動元素,給算法的效率帶來較大的提高。鏈表這一章中介紹了鏈表的節(jié)點(diǎn)結(jié)構(gòu)、靜態(tài)與動態(tài)鏈表的概念、鏈表的基本運(yùn)算(如求表長、插入、查找、刪除等)、單鏈表的建立(頭插法和尾插法)以及雙向循環(huán)鏈表的定義、結(jié)構(gòu)、功能和基本算法。
    堆棧與隊(duì)列是兩種運(yùn)算受限制的線性結(jié)構(gòu)。其基本運(yùn)算方法與順序表和鏈表運(yùn)算方法基本相同,不同的是堆棧須遵循“先進(jìn)后出”的規(guī)則,對堆棧的操作只能在棧頂進(jìn)行;而隊(duì)列要遵循“先進(jìn)先出”的規(guī)則,教材中列出了兩種結(jié)構(gòu)的相應(yīng)算法,如入棧、出棧、入隊(duì)、出隊(duì)等。在介紹隊(duì)列時(shí),提出了循環(huán)隊(duì)列的概念,以避免“假溢出”的現(xiàn)象。
    第六章介紹了特殊矩陣和廣義表的概念與應(yīng)用。其中,特殊矩陣包括對稱矩陣、三角矩陣、對角矩陣和稀疏矩陣,書中分別詳細(xì)介紹了它們的存儲結(jié)構(gòu)。稀疏矩陣的應(yīng)用包括轉(zhuǎn)置和加法運(yùn)算等。最后介紹了廣義表的相關(guān)概念及存儲結(jié)構(gòu),關(guān)于它的應(yīng)用,課本中舉了m元多項(xiàng)式的表示問題。
    第七章二叉樹的知識是重點(diǎn)內(nèi)容。在介紹有關(guān)概念時(shí),提到了二叉樹的性質(zhì)以及兩種特殊的二叉樹:完全二叉樹和滿二叉樹。接著介紹二叉樹的順序存儲和鏈接存儲以及生成算法。重點(diǎn)介紹二叉樹的遍歷算法(遞歸算法、先序、中序和后序遍歷非遞歸算法)和線索二叉樹。二叉樹的應(yīng)用:基本算法、哈弗曼樹、二叉排序樹和堆排序。
    樹與二叉樹是不同的概念。教材介紹了樹和森林的概念、遍歷和存儲結(jié)構(gòu),還有樹、森林和二叉樹的相互關(guān)系,樹或森林怎樣轉(zhuǎn)化成二叉樹,二叉樹又如何轉(zhuǎn)換為樹和森林等算法。散列結(jié)構(gòu)是一種查找效率很高的一種數(shù)據(jù)結(jié)構(gòu)。本章的主要知識點(diǎn)有:散列結(jié)構(gòu)的概念及其存儲結(jié)構(gòu)、散列函數(shù)、兩種沖突處理方法、線性探測散列和鏈地址散列的基本算法以及散列結(jié)構(gòu)的查找性能分析。
    最后一章介紹了圖的概念及其應(yīng)用,是本書的難點(diǎn)。圖的存儲結(jié)構(gòu)的知識點(diǎn)有:鄰接矩陣、鄰接表、逆鄰接表、十字鏈表和鄰接多重表。圖的遍歷包括圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷。其余知識點(diǎn)有:有向圖、連通圖、生成樹和森林、最短路徑問題和有向無環(huán)圖及其應(yīng)用。有向無環(huán)圖重點(diǎn)理解aov網(wǎng)和拓?fù)渑判蚣捌渌惴ā?BR>    二、對各知識點(diǎn)的掌握情況。
    總體來看,對教材中的知識點(diǎn)理解較為完善,但各個(gè)章節(jié)均出現(xiàn)有個(gè)別知識點(diǎn)較為陌生的現(xiàn)象?,F(xiàn)將各個(gè)章節(jié)出現(xiàn)的知識點(diǎn)理解情況列舉如下。
    第一章中我對數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)的概念理解較為透徹,熟悉數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)。而對算法的時(shí)間、空間性能分析較為模糊,尤其是空間性能分析需要加強(qiáng)。
    第二章,順序表的概念、生成算法理解較為清晰,并且熟悉簡單順序查找和二分查找,對分塊查找較為含糊;排序問題中,由于冒泡排序在大一c語言課上已經(jīng)學(xué)習(xí)過,再來學(xué)習(xí)感覺很輕松。對插入排序和選擇排序理解良好,但是,在實(shí)際運(yùn)用中仍然出現(xiàn)明顯不熟練的現(xiàn)象。由于在歸并排序?qū)W習(xí)中感覺較吃力,現(xiàn)在對這種排序方法仍然非常模糊,所以需要花較多的時(shí)間來補(bǔ)習(xí)。此外串的模式匹配也是較難理解的一個(gè)地方。
    鏈表這一章中,除對雙向循環(huán)鏈表這一知識點(diǎn)理解困難之外,其他的知識點(diǎn)像單鏈表的建立和基本算法等都較為熟悉。
    接下來的有關(guān)堆棧以及隊(duì)列的知識點(diǎn)比較少,除有關(guān)算法較為特殊以外,其余算法都是先前學(xué)過的順序表和鏈表的知識,加上思想上較為重視,因此這部分內(nèi)容是我對全書掌握最好的一部分。不足之處仍然表現(xiàn)在算法的性能分析上。
    在學(xué)習(xí)第六章時(shí)感覺較為吃力的部分在于矩陣的應(yīng)用上,尤其對矩陣轉(zhuǎn)置算法的c語言描述不太理解。稀疏矩陣相加算法中,用三元組表實(shí)現(xiàn)比較容易理解,對十字鏈表進(jìn)行矩陣相加的方法較為陌生。
    第七章是全書的重點(diǎn),卻也有一些內(nèi)容沒有完全理解。在第一節(jié)基本概念中,二叉樹的性質(zhì)容易懂卻很難記憶。對二叉樹的存儲結(jié)構(gòu)和遍歷算法這部分內(nèi)容掌握較好,能夠熟練運(yùn)用,而對于二叉樹應(yīng)用中的哈弗曼樹卻比較陌生。
    第八章內(nèi)容較少,牽涉到所學(xué)的隊(duì)列的有關(guān)內(nèi)容,總體來說理解上沒有什么困難,問題依舊出現(xiàn)在算法的性能分析上。
    散列結(jié)構(gòu)這一章理解比較完善的知識點(diǎn)有:基本概念和存儲結(jié)構(gòu)。散列函數(shù)中直接定址法和除留余數(shù)法學(xué)得比較扎實(shí),對數(shù)字分析法等方法則感覺較為陌生。對兩種沖突處理的算法思想的理解良好,問題在于用c語言描述上。
    最后一章,圖及其應(yīng)用中,圖的定義、基本運(yùn)算如圖的生成等起初理解有困難,但隨著學(xué)習(xí)深入,對它的概念也逐步明朗起來。鄰接矩陣、鄰接表和逆鄰接表掌握較好,而對十字鏈表和鄰接多重表則較為陌生。感覺理解較為吃力的內(nèi)容還有圖的遍歷(包括深度和廣度優(yōu)先遍歷),最小生成樹問題也是比較陌生的知識點(diǎn)。最短路徑和aov網(wǎng)學(xué)習(xí)起來感覺比較輕松,而對于c語言描述卻又不大明白。
    三、學(xué)習(xí)體會。
    在學(xué)習(xí)伊始,老師就明確提出它不是一種計(jì)算機(jī)語言,不會介紹新的關(guān)鍵詞,而是通過學(xué)習(xí)可以設(shè)計(jì)出良好的算法,高效地組織數(shù)據(jù)。一個(gè)程序無論采用何種語言,其基本算法思想不會改變。聯(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ī)器可識別的描述。
    自己的程序中再加以必要的連接以完成程序的編寫。針對這一情況,我會嚴(yán)格要求自己,熟練掌握算法思想,盡量獨(dú)立完成程序的編寫與修改工作,只有這樣,才能夠提高運(yùn)用知識,解決問題的能力。
    四、對《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)的建議。
    1、建議在上課過程中加大隨堂練習(xí)的分量,以便學(xué)生能當(dāng)堂消化課堂上學(xué)習(xí)的知識,也便于及時(shí)了解學(xué)生對知識點(diǎn)的掌握情況,同時(shí)有助于學(xué)生保持良好的精神狀態(tài)。
    2、建議在課時(shí)允許的情況下,增加習(xí)題課的分量,通過課堂的習(xí)題講解,加深對知識點(diǎn)的掌握,同時(shí)對各知識點(diǎn)的運(yùn)用有一個(gè)更為直觀和具體的認(rèn)識。
    以上便是我對《數(shù)據(jù)結(jié)構(gòu)與算法》這門課的學(xué)習(xí)總結(jié),我會抓緊時(shí)間將沒有吃透的知識點(diǎn)補(bǔ)齊。今后我仍然會繼續(xù)學(xué)習(xí),克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁進(jìn)!
    數(shù)據(jù)結(jié)構(gòu)與算法心得篇十六
    時(shí)光荏苒,如白駒過隙般匆匆而去,眼看的一年實(shí)習(xí)生活馬上就要成為美好的回憶。在這短短一年的時(shí)間里我感覺自己成長了許多,從象牙塔邁出的第一步走的特別的穩(wěn)重,感謝學(xué)校給我提供了一個(gè)努力拼搏的舞臺,讓我學(xué)會了如何面對這個(gè)真實(shí)的社會,實(shí)現(xiàn)了從在校學(xué)子向職場人士的轉(zhuǎn)變。
    實(shí)習(xí)是繼中考后又一個(gè)人生的十字路口,它意味著人生一個(gè)新時(shí)期的到來——告別學(xué)校走入社會。社會是個(gè)大的集合,不管是以前的學(xué)校還是現(xiàn)在的實(shí)習(xí)單位都同屬這個(gè)集合。這幾個(gè)月來,給我感覺學(xué)校純一點(diǎn),單位復(fù)雜一點(diǎn)。不過我知道不論學(xué)校還是單位其實(shí)都是社會的縮影。實(shí)習(xí)的真正目的就是讓我們這些在校的學(xué)生走入社會。社會是形形色色、方方面面的,你要學(xué)會的是適應(yīng)這個(gè)社會而不是讓這個(gè)社會適應(yīng)你。
    剛剛走進(jìn)社會不適應(yīng)是正常的。人有的時(shí)候很奇怪:心情或者更準(zhǔn)確地說是熱情往往會因時(shí)間、環(huán)境、所經(jīng)歷的事而起伏。就像我對境界一詞的理解:人與他所受教育、所處環(huán)境、所經(jīng)歷對事物的理解、判斷、預(yù)知的程度就是這個(gè)人的境界。作為一名中專生,專業(yè)需求的建筑認(rèn)識實(shí)訓(xùn)開始了,我們?nèi)珜I(yè)的同學(xué)在__的各大建筑工地認(rèn)識實(shí)習(xí),對于我當(dāng)初選擇土木工程這樣的專業(yè),說真的我并不知道什么是土木工程。現(xiàn)在我對土木工程有了基本的感性認(rèn)識了,我想任何事的認(rèn)識都是通過感性認(rèn)識上升到理性認(rèn)識的,這次認(rèn)識實(shí)習(xí)應(yīng)該是一個(gè)鍛煉的好機(jī)會!
    土木工程是建造各類工程設(shè)施的學(xué)科、技術(shù)和工程的總稱。它既指與與人類生活、生產(chǎn)活動有關(guān)的各類工程設(shè)施,如建筑公程、公路與城市道路工程、鐵路工程、橋梁工程、隧道工程等,也指應(yīng)用材料、設(shè)備在土地上所進(jìn)行的勘測、設(shè)計(jì)、施工等工程技術(shù)活動。
    我應(yīng)該知道現(xiàn)在的.我還不夠成熟,如果說人生是一片海洋,那么我應(yīng)該在這片海洋里劈波斬浪,揚(yáng)帆遠(yuǎn)航而不是躲在避風(fēng)港里。只要經(jīng)歷多了,我就會成熟;我就會變強(qiáng)。我相信。那時(shí)的成功是領(lǐng)導(dǎo)、師傅們給我鼓勵(lì),是實(shí)習(xí)的經(jīng)歷給我力量,所以我感謝領(lǐng)導(dǎo)師傅還有我的好朋友們,也感謝學(xué)校給我這次實(shí)習(xí)的機(jī)會。一年的實(shí)習(xí)生活中,緊張過,努力過,醒悟過,開心過。這些從為有過的經(jīng)歷讓我進(jìn)步了,成長了。學(xué)會了一些在學(xué)校從未學(xué)過以后也學(xué)不到的東西,也有很多的感悟。
    通過本次課程設(shè)計(jì),對圖的概念有了一個(gè)新的認(rèn)識,在學(xué)習(xí)離散數(shù)學(xué)的時(shí)候,總覺得圖是很抽象的東西,但是在學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程之后,我慢慢地體會到了其中的奧妙,圖能夠在計(jì)算機(jī)中存在,首先要捕捉他有哪些具體化、數(shù)字化的信息,比如說權(quán)值、頂點(diǎn)個(gè)數(shù)等,這也就說明了想要把生活中的信息轉(zhuǎn)化到計(jì)算機(jī)中必須用數(shù)字來完整的構(gòu)成一個(gè)信息庫,而圖的存在,又涉及到了頂點(diǎn)之間的聯(lián)系。圖分為有向圖和無向圖,而無向圖又是有向圖在權(quán)值雙向相等下的一種特例,如何能在計(jì)算機(jī)中表示一個(gè)雙向權(quán)值不同的圖,這就是一件很巧妙的事情,經(jīng)過了思考和老師同學(xué)的幫助,我用edges[i][j]=up和edges[j][i]=up就能實(shí)現(xiàn)了一個(gè)雙向圖信息的存儲。對整個(gè)程序而言,dijkstra算法始終都是核心內(nèi)容,其實(shí)這個(gè)算法在實(shí)際思考中并不難,也許我們誰都知道找一個(gè)路徑最短的方法,及從頂點(diǎn)一步一步找最近的路線并與其直接距離相比較,但是,在計(jì)算機(jī)中實(shí)現(xiàn)這么一個(gè)很簡單的想法就需要涉及到很多專業(yè)知識,為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c語言為主,所以浪費(fèi)了很多時(shí)間,比如說在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見在調(diào)用知識點(diǎn),我沒有掌握好。不過,有了這次課程設(shè)計(jì)的經(jīng)驗(yàn)和教訓(xùn),我能夠很清楚的對自己定一個(gè)合適的水平,而且在這次課程設(shè)計(jì)中我學(xué)會了運(yùn)用兩個(gè)新的函數(shù)sprintf()和包涵在#include頭文件中的輸入函數(shù)。因?yàn)檎n程設(shè)計(jì)的題目是求最短路徑,本來是想通過算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬聿患安檎腋鞯氐男畔?,所以,這個(gè)計(jì)劃就沒有實(shí)現(xiàn),我相信在以后有更長時(shí)間的情況下,我會做出來的。