亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        2023年數(shù)據(jù)結(jié)構(gòu)與算法心得(熱門(mén)18篇)

        字號(hào):

            總結(jié)可以使我們更加客觀地看待自己的成績(jī)和不足,掌握改進(jìn)的方向。一個(gè)好的寫(xiě)作思路能夠幫助我們更好地組織文章的結(jié)構(gòu)和內(nèi)容。我們?yōu)榇蠹艺砹艘恍﹥?yōu)秀的總結(jié)范文,供大家參考和借鑒,希望對(duì)大家有所幫助。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇一
            課程名稱:
            學(xué)生學(xué)號(hào):
            所屬院部:
            (理工類)。
            學(xué)生姓名:
            指導(dǎo)教師:——20學(xué)年第學(xué)期。
            金陵科技學(xué)院教務(wù)處制。
            實(shí)驗(yàn)報(bào)告書(shū)寫(xiě)要求。
            實(shí)驗(yàn)報(bào)告原則上要求學(xué)生手寫(xiě),要求書(shū)寫(xiě)工整。若因課程特點(diǎn)需打印的,要遵照以下字體、字號(hào)、間距等的具體要求。紙張一律采用a4的紙張。
            實(shí)驗(yàn)報(bào)告書(shū)寫(xiě)說(shuō)明。
            實(shí)驗(yàn)報(bào)告中一至四項(xiàng)內(nèi)容為必填項(xiàng),包括實(shí)驗(yàn)?zāi)康暮鸵螅粚?shí)驗(yàn)儀器和設(shè)備;實(shí)驗(yàn)內(nèi)容與過(guò)程;實(shí)驗(yàn)結(jié)果與分析。各院部可根據(jù)學(xué)科特點(diǎn)和實(shí)驗(yàn)具體要求增加項(xiàng)目。
            填寫(xiě)注意事項(xiàng)。
            (1)細(xì)致觀察,及時(shí)、準(zhǔn)確、如實(shí)記錄。(2)準(zhǔn)確說(shuō)明,層次清晰。
            (3)盡量采用專用術(shù)語(yǔ)來(lái)說(shuō)明事物。
            (4)外文、符號(hào)、公式要準(zhǔn)確,應(yīng)使用統(tǒng)一規(guī)定的名詞和符號(hào)。(5)應(yīng)獨(dú)立完成實(shí)驗(yàn)報(bào)告的書(shū)寫(xiě),嚴(yán)禁抄襲、復(fù)印,一經(jīng)發(fā)現(xiàn),以零分論處。
            實(shí)驗(yàn)報(bào)告批改說(shuō)明。
            實(shí)驗(yàn)報(bào)告的批改要及時(shí)、認(rèn)真、仔細(xì),一律用紅色筆批改。實(shí)驗(yàn)報(bào)告的批改成績(jī)采用百分制,具體評(píng)分標(biāo)準(zhǔn)由各院部自行制定。
            實(shí)驗(yàn)報(bào)告裝訂要求。
            實(shí)驗(yàn)批改完畢后,任課老師將每門(mén)課程的每個(gè)實(shí)驗(yàn)項(xiàng)目的實(shí)驗(yàn)報(bào)告以自然班為單位、按學(xué)號(hào)升序排列,裝訂成冊(cè),并附上一份該門(mén)課程的實(shí)驗(yàn)大綱。
            實(shí)驗(yàn)項(xiàng)目名稱:順序表實(shí)驗(yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)1順序表。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    掌握順序表的定位、插入、刪除等操作。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            vc6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            (1)編寫(xiě)程序建立一個(gè)順序表,并逐個(gè)輸出順序表中所有數(shù)據(jù)元素的值。編寫(xiě)主函數(shù)測(cè)試結(jié)果。
            (2)編寫(xiě)順序表定位操作子函數(shù),在順序表中查找是否存在數(shù)據(jù)元素x。如果存在,返回順序表中和x值相等的第1個(gè)數(shù)據(jù)元素的序號(hào)(序號(hào)從0開(kāi)始編號(hào));如果不存在,返回-1。編寫(xiě)主函數(shù)測(cè)試結(jié)果。(3)在遞增有序的順序表中插入一個(gè)新結(jié)點(diǎn)x,保持順序表的有序性。
            解題思路:首先查找插入的位置,再移位,最后進(jìn)行插入操作;從第一個(gè)元素開(kāi)始找到第一個(gè)大于該新結(jié)點(diǎn)值x的元素位置i即為插入位置;然后將從表尾開(kāi)始依次將元素后移一個(gè)位置直至元素i;最后將新結(jié)點(diǎn)x插入到i位置。
            (4)刪除順序表中所有等于x的數(shù)據(jù)元素。
            2、選做題。
            (5)已知兩個(gè)順序表a和b按元素值遞增有序排列,要求寫(xiě)一算法實(shí)現(xiàn)將a和b歸并成一個(gè)按元素值遞減有序排列的順序表(允許表中含有值相同的元素)。
            程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            實(shí)驗(yàn)項(xiàng)目名稱:?jiǎn)捂湵韺?shí)驗(yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)2單鏈表。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    1、實(shí)驗(yàn)?zāi)康摹?BR>    掌握單鏈表的定位、插入、刪除等操作。
            2、實(shí)驗(yàn)要求。
            (1)注意鏈表的空間是動(dòng)態(tài)分配的,某結(jié)點(diǎn)不用之后要及時(shí)進(jìn)行物理刪除,以便釋放其內(nèi)存空間。
            (2)鏈表不能實(shí)現(xiàn)直接定位,一定注意指針的保存,防止丟失。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            visualc++6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            (1)編寫(xiě)程序建立一個(gè)單鏈表,并逐個(gè)輸出單鏈表中所有數(shù)據(jù)元素。(2)在遞增有序的單鏈表中插入一個(gè)新結(jié)點(diǎn)x,保持單鏈表的有序性。
            解題思路:首先查找插入的位置然后進(jìn)行插入操作;從第一個(gè)結(jié)點(diǎn)開(kāi)始找到第一個(gè)大于該新結(jié)點(diǎn)值的結(jié)點(diǎn)即為插入位置;然后在找到的此結(jié)點(diǎn)之前插入新結(jié)點(diǎn);注意保留插入位置之前結(jié)點(diǎn)的指針才能完成插入操作。
            (3)編寫(xiě)實(shí)現(xiàn)帶頭結(jié)點(diǎn)單鏈表就地逆置的子函數(shù),并編寫(xiě)主函數(shù)測(cè)試結(jié)果。
            2、選做題。
            已知指針la和lb分別指向兩個(gè)無(wú)頭結(jié)點(diǎn)單鏈表的首元結(jié)點(diǎn)。要求編一算法實(shí)現(xiàn),從表la中刪除自第i個(gè)元素起共len個(gè)元素后,將它們插入到表lb中第j個(gè)元素之前。程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            實(shí)驗(yàn)項(xiàng)目名稱:堆棧和隊(duì)列實(shí)驗(yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)3堆棧和隊(duì)列。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    (1)掌握應(yīng)用棧解決問(wèn)題的方法。(2)掌握利用棧進(jìn)行表達(dá)式求和的算法。
            (3)掌握隊(duì)列的存儲(chǔ)結(jié)構(gòu)及基本操作實(shí)現(xiàn),并能在相應(yīng)的應(yīng)用問(wèn)題中正確選用它們。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            visualc++6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            (1)判斷一個(gè)算術(shù)表達(dá)式中開(kāi)括號(hào)和閉括號(hào)是否配對(duì)。(2)測(cè)試“漢諾塔”問(wèn)題。
            (3)假設(shè)稱正讀和反讀都相同的字符序列為”回文”,試寫(xiě)一個(gè)算法判別讀入的一個(gè)以’@’為結(jié)束符的字符序列是否是“回文”。
            2、選做題。
            在順序存儲(chǔ)結(jié)構(gòu)上實(shí)現(xiàn)輸出受限的雙端循環(huán)隊(duì)列的入列和出列算法。設(shè)每個(gè)元素表示一個(gè)待處理的作業(yè),元素值表示作業(yè)的預(yù)計(jì)時(shí)間。入隊(duì)列采取簡(jiǎn)化的短作業(yè)優(yōu)先原則,若一個(gè)新提交的作業(yè)的預(yù)計(jì)執(zhí)行時(shí)間小于隊(duì)頭和隊(duì)尾作業(yè)的平均時(shí)間,則插入在隊(duì)頭,否則插入在隊(duì)尾。程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            實(shí)驗(yàn)項(xiàng)目名稱:串實(shí)驗(yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)4串。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    掌握串的存儲(chǔ)及應(yīng)用。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            visualc++6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            (1)編寫(xiě)輸出字符串s中值等于字符ch的第一個(gè)字符的函數(shù),并用主函數(shù)測(cè)試結(jié)果。
            (2)編寫(xiě)輸出字符串s中值等于字符ch的所有字符的函數(shù),并用主函數(shù)測(cè)試結(jié)果。
            解題思路:可以將第一題程序改進(jìn)成一個(gè)子函數(shù),在本題中循環(huán)調(diào)用。(3)設(shè)字符串采用單字符的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),編程刪除串s從位置i開(kāi)始長(zhǎng)度為k的子串。
            2、選做題。
            假設(shè)以鏈結(jié)構(gòu)表示串,編寫(xiě)算法實(shí)現(xiàn)將串s插入到串t中某個(gè)字符之后,若串t中不存在這個(gè)字符,則將串s聯(lián)接在串t的末尾。
            提示:為提高程序的通用性,插入位置字符應(yīng)設(shè)計(jì)為從鍵盤(pán)輸入。程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            實(shí)驗(yàn)項(xiàng)目名稱:二叉樹(shù)實(shí)驗(yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)5二叉樹(shù)。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    (1)掌握二叉樹(shù)的生成,以及前、中、后序遍歷算法。(2)掌握應(yīng)用二叉樹(shù)遞歸遍歷思想解決問(wèn)題的方法。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            visualc++6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            (1)建立一棵二叉樹(shù)。對(duì)此樹(shù)進(jìn)行前序遍歷、中序遍歷及后序遍歷,輸出遍歷序列。
            (2)在第一題基礎(chǔ)上,求二叉樹(shù)中葉結(jié)點(diǎn)的個(gè)數(shù)。(3)在第一題基礎(chǔ)上,求二叉樹(shù)中結(jié)點(diǎn)總數(shù)。(4)在第一題基礎(chǔ)上,求二叉樹(shù)的深度。
            2、選做題。
            已知一棵完全二叉樹(shù)存于順序表sa中,[1…]存儲(chǔ)結(jié)點(diǎn)的值。試編寫(xiě)算法由此順序存儲(chǔ)結(jié)構(gòu)建立該二叉樹(shù)的二叉鏈表。
            解題思路:根據(jù)完全二叉樹(shù)順序存儲(chǔ)的性質(zhì)來(lái)確定二叉樹(shù)的父子關(guān)系即“還原”了二叉樹(shù),之后再按照二叉樹(shù)二叉鏈表的構(gòu)造方法進(jìn)行建立。完全二叉樹(shù)順序存儲(chǔ)的一個(gè)重要性質(zhì)為,第i個(gè)結(jié)點(diǎn)的左孩子是編號(hào)為2i的結(jié)點(diǎn),第i個(gè)結(jié)點(diǎn)的右孩子是編號(hào)為2i+1的結(jié)點(diǎn)。程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            實(shí)驗(yàn)項(xiàng)目名稱:圖實(shí)驗(yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)6圖。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    (1)熟練掌握?qǐng)D的基本概念、構(gòu)造及其存儲(chǔ)結(jié)構(gòu)。
            (2)熟練掌握對(duì)圖的深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷的算法。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            visualc++6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            (1)構(gòu)造一個(gè)無(wú)向圖(用鄰接矩陣表示存儲(chǔ)結(jié)構(gòu))。
            (2)對(duì)上面所構(gòu)造的無(wú)向圖,進(jìn)行深度優(yōu)先遍歷和廣度優(yōu)先遍歷,輸出遍歷序列。
            2、選做題。
            采用鄰接表存儲(chǔ)結(jié)構(gòu),編寫(xiě)一個(gè)判別無(wú)向圖中任意給定的兩個(gè)頂點(diǎn)之間是否存在一條長(zhǎng)度為k的簡(jiǎn)單路徑的算法。簡(jiǎn)單路徑是指其頂點(diǎn)序列中不含有重復(fù)頂點(diǎn)的路徑。提示:兩個(gè)頂點(diǎn)及k值均作為參數(shù)給出。程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            實(shí)驗(yàn)項(xiàng)目名稱:排序?qū)嶒?yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)7排序。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    (1)熟練掌握希爾排序、堆排序、直接插入排序、起泡排序、快速排序、直接選擇排序、歸并排序和基數(shù)排序的基本概念。
            (2)掌握以上各種排序的算法。區(qū)分以上不同排序的優(yōu)、缺點(diǎn)。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            visualc++6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            用隨機(jī)數(shù)產(chǎn)生100000個(gè)待排序數(shù)據(jù)元素的關(guān)鍵字值。測(cè)試下列各排序函數(shù)的機(jī)器實(shí)際執(zhí)行時(shí)間(至少測(cè)試兩個(gè)):直接插入排序、希爾排序(增量為4,2,1)、冒泡排序、快速排序、直接選擇排序、二路歸并排序、堆排序和基于鏈?zhǔn)疥?duì)列的基數(shù)排序。
            2、選做題。
            假設(shè)含n個(gè)記錄的序列中,其所有關(guān)鍵字為值介于v和w之間的整數(shù),且其中很多關(guān)鍵字的值是相同的。則可按如下方法排序:另設(shè)數(shù)組number[v…w],令number[i]統(tǒng)計(jì)關(guān)鍵字為整數(shù)i的紀(jì)錄個(gè)數(shù),然后按number重排序列以達(dá)到有序。試編寫(xiě)算法實(shí)現(xiàn)上述排序方法,并討論此種方法的優(yōu)缺點(diǎn)。程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            實(shí)驗(yàn)項(xiàng)目名稱:查找實(shí)驗(yàn)學(xué)時(shí):2同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):批改教師:批改時(shí)間:
            實(shí)驗(yàn)8查找。
            一、實(shí)驗(yàn)?zāi)康暮鸵蟆?BR>    (1)掌握順序表查找、有序表查找、索引順序表查找的各種算法。(2)掌握哈希表設(shè)計(jì)。
            二、實(shí)驗(yàn)儀器和設(shè)備。
            visualc++6.0。
            三、實(shí)驗(yàn)內(nèi)容與過(guò)程(含程序清單及流程圖)。
            1、必做題。
            (1)在一個(gè)遞增有序的線性表中利用二分查找法查找數(shù)據(jù)元素x。
            2、選做題。
            (2)構(gòu)造一個(gè)哈希表,哈希函數(shù)采用除留余數(shù)法,哈希沖突解決方法采用鏈地址法。設(shè)計(jì)一個(gè)測(cè)試程序進(jìn)行測(cè)試。
            提示:構(gòu)造哈希表只是完成查找的第一步,大家應(yīng)該掌握在哈希表上進(jìn)行查找的過(guò)程,可以試著編程序?qū)崿F(xiàn)。程序清單:
            四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)。
            五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì))。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇二
            做了一個(gè)星期的程序設(shè)計(jì)終于做完了,在這次程序設(shè)計(jì)課中,真是讓我獲益匪淺,我突然發(fā)現(xiàn)寫(xiě)程序還挺有意思的。
            由于上學(xué)期的c語(yǔ)言跟這學(xué)期的數(shù)據(jù)結(jié)構(gòu)都算不上真正的懂,對(duì)于書(shū)上的稍微難點(diǎn)的知識(shí)就是是而非的,所以我只是對(duì)老師的程序理解,我也試著去改變了一些變量,自己也盡量多的去理解老師做程序的思路。當(dāng)我第一天坐在那里的時(shí)候,我就不知道該做些什么,后來(lái)我只有下來(lái)自己看了一遍書(shū)來(lái)熟悉下以前學(xué)過(guò)的知識(shí)。
            通過(guò)這次的程序設(shè)計(jì),發(fā)現(xiàn)一個(gè)程序設(shè)計(jì)就是算法與數(shù)據(jù)結(jié)構(gòu)的結(jié)合體,自己也開(kāi)始對(duì)程序產(chǎn)生了前所未有的興趣,以前偷工減料的學(xué)習(xí)也不可能一下子寫(xiě)出一個(gè)程序出來(lái),于是我就認(rèn)真看老師寫(xiě)的程序,發(fā)現(xiàn)我們看懂了一個(gè)程序其實(shí)不難,難的是對(duì)于一個(gè)程序的思想的理解,我們要掌握一個(gè)算法,不僅僅限于讀懂,主要的是要理解老師的思路,學(xué)習(xí)老師的解決問(wèn)題的方法。
            這次試驗(yàn)中,我發(fā)現(xiàn)書(shū)本上的知識(shí)是一個(gè)基礎(chǔ),但是我基礎(chǔ)都沒(méi)掌握,更別說(shuō)寫(xiě)出一個(gè)整整的'程序了。自己在寫(xiě)程序的時(shí)候,也發(fā)現(xiàn)自己的知識(shí)太少了,特別是基礎(chǔ)知識(shí)很多都是模模糊糊的一個(gè)概念,沒(méi)有落實(shí)到真正的程序,所以自己寫(xiě)的時(shí)候也感到萬(wàn)分痛苦,基本上涉及一個(gè)知識(shí)我就會(huì)去看看書(shū),對(duì)于書(shū)本上的知識(shí)沒(méi)掌握好。在飯后閑暇時(shí)間我也總結(jié)了一下,自己以前上課也認(rèn)真的聽(tīng)了,但是還是寫(xiě)不出來(lái),這主要?dú)w結(jié)于自己的練習(xí)太少了,而且也總是半懂就不管了。在改寫(xiě)老師的程序中也出現(xiàn)了很多的問(wèn)題,不斷的修改就是不斷的學(xué)習(xí)過(guò)程,當(dāng)我們?nèi)硇牡耐度肫渲袝r(shí),實(shí)際上是一件很有樂(lè)趣的事情。對(duì)于以后的學(xué)習(xí)有了幾點(diǎn)總結(jié):第一、熟記各種數(shù)據(jù)結(jié)構(gòu)類型,定義、特點(diǎn)、基本運(yùn)算;第二、各種常用的排序算法,如冒泡排序、堆排序……,這些是必考的內(nèi)容,分?jǐn)?shù)不會(huì)少于20%;第三,多做習(xí)題,看題型,針對(duì)題型來(lái)有選擇復(fù)習(xí);數(shù)據(jù)結(jié)構(gòu)看上去很復(fù)雜,但你靜下心來(lái)把書(shū)掃上幾遍,分解各個(gè)知識(shí)點(diǎn),這一下來(lái),學(xué)數(shù)據(jù)結(jié)構(gòu)的思路就會(huì)很清晰了。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇三
            (一)課程性質(zhì)。
            《數(shù)據(jù)結(jié)構(gòu)》是一門(mén)專業(yè)基礎(chǔ)課,在計(jì)算機(jī)軟件的各個(gè)領(lǐng)域中均會(huì)使用到數(shù)據(jù)結(jié)構(gòu)的有關(guān)知識(shí)。本課程的先修課程為c程序設(shè)計(jì)或c++程序設(shè)計(jì)。
            (二)教學(xué)目的。
            學(xué)會(huì)從問(wèn)題入手,分析研究計(jì)算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應(yīng)用所涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其相應(yīng)的操作算法,并初步掌握時(shí)間和空間分析技術(shù)。另一方面,本課程的學(xué)習(xí)過(guò)程也是進(jìn)行復(fù)雜程序設(shè)計(jì)的訓(xùn)練過(guò)程,要求學(xué)生會(huì)書(shū)寫(xiě)符合軟件工程規(guī)范的文件,編寫(xiě)的程序代碼應(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ù)存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)類型、算法等。抽象數(shù)據(jù)類型。算法時(shí)間復(fù)雜度和空間復(fù)雜度的分析。
            教學(xué)重點(diǎn):有關(guān)數(shù)據(jù)結(jié)構(gòu)的各個(gè)名詞和術(shù)語(yǔ)的含義,以及語(yǔ)句頻度和時(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ù)語(yǔ)什么是數(shù)據(jù)結(jié)構(gòu)。
            二、數(shù)據(jù)抽象。
            三、抽象數(shù)據(jù)類型的描述語(yǔ)言。
            第四節(jié)。
            一、算法。
            二、算法設(shè)計(jì)的要求。
            三、算法效率的度量。
            四、算法的存儲(chǔ)空間需求。
            (三)教學(xué)方法與形式。
            課堂講授、多媒體課件。
            (四)教學(xué)時(shí)數(shù)。
            4學(xué)時(shí)。
            第二章線性表。
            (一)教學(xué)目的與要求。
            介紹線性表的基本概念和類型定義,對(duì)順序表和單鏈表的常用操作方法及其程序?qū)崿F(xiàn),循環(huán)鏈表和雙向鏈表的定義和它的插入、刪除等操作方法。掌握線性表的基本概念和類型定義;熟練掌握對(duì)順序表和單鏈表的常用操作方法及其程序?qū)崿F(xiàn);掌握循環(huán)鏈表和雙向鏈表的定義和它的插入、刪除等操作方法。
            (二)教學(xué)內(nèi)容。
            主要內(nèi)容:線性表的基本概念和類型定義,線性表的順序存儲(chǔ)結(jié)構(gòu),線性表的鏈接存儲(chǔ)結(jié)構(gòu):(1)單鏈表的查找、插入和刪除;(2)循環(huán)鏈表;(3)雙向鏈表。
            教學(xué)重點(diǎn):在順序表和鏈表上各種基本算法的實(shí)現(xiàn)及相關(guān)的時(shí)間性能分析。
            教學(xué)難點(diǎn):用所學(xué)的基本知識(shí)設(shè)計(jì)有效算法解決與線性表相關(guān)的應(yīng)用問(wèn)題。鏈表要分清鏈表中指針p和結(jié)點(diǎn)*p之間的對(duì)應(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)式的存儲(chǔ)結(jié)構(gòu)。
            五、抽象數(shù)據(jù)類型:一元多項(xiàng)式的基本操作算法實(shí)現(xiàn)。
            (三)教學(xué)方法與形式。
            一元多項(xiàng)式的表示及相加線性表的鏈?zhǔn)酱鎯?chǔ)表示和實(shí)現(xiàn)線性表的順序存儲(chǔ)表示和實(shí)現(xiàn)。
            線性表的類型定義算法和算法分析課堂講授、多媒體課件。
            (四)教學(xué)時(shí)數(shù)。
            8學(xué)時(shí)。
            第三章棧和隊(duì)列。
            (一)教學(xué)目的與要求。
            介紹棧和隊(duì)列的定義,順序和鏈接存儲(chǔ)的棧和隊(duì)列的各種運(yùn)算的方法及其程序?qū)崿F(xiàn)。掌握棧和隊(duì)列的定義,熟練掌握順序和鏈接存儲(chǔ)的棧和隊(duì)列的各種運(yùn)算的方法及其程序?qū)崿F(xiàn)。
            (二)教學(xué)內(nèi)容。
            主要內(nèi)容:棧的類型定義,棧的順序存儲(chǔ)和鏈接存儲(chǔ)的表示,在棧的順序存儲(chǔ)和鏈接存儲(chǔ)上進(jìn)行各種棧操作的算法,棧的應(yīng)用舉例,隊(duì)列的類型定義,隊(duì)列的順序存儲(chǔ)(循環(huán)隊(duì))和鏈接存儲(chǔ)表示及各種操作的實(shí)現(xiàn)算法。
            教學(xué)重點(diǎn):棧和隊(duì)列在兩種存儲(chǔ)結(jié)構(gòu)上實(shí)現(xiàn)的基本運(yùn)算。教學(xué)難點(diǎn):遞歸的實(shí)現(xiàn)、循環(huán)隊(duì)列中對(duì)邊界條件的處理。
            第一節(jié)。
            一、抽象數(shù)據(jù)類型棧的定義。
            二、棧的表示和實(shí)現(xiàn)。
            第二節(jié)。
            一、數(shù)制轉(zhuǎn)換。
            二、括號(hào)匹配的檢驗(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)先級(jí)隊(duì)列的概念。
            二、優(yōu)先級(jí)隊(duì)列的存儲(chǔ)表示和實(shí)現(xiàn)。
            (三)教學(xué)方法與形式。
            課堂講授、多媒體課件。
            (四)教學(xué)時(shí)數(shù)。
            4學(xué)時(shí)。
            第四章串。
            (一)教學(xué)目的與要求。
            介紹串的基本概念和操作,串的存儲(chǔ)結(jié)構(gòu)以及基本操作的算法實(shí)現(xiàn)。掌握串的基本概念和操作,掌握串的存儲(chǔ)結(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):利用串的基本操作來(lái)實(shí)現(xiàn)串的其它操作。
            優(yōu)先級(jí)隊(duì)列隊(duì)列棧與遞歸的實(shí)現(xiàn)棧的應(yīng)用舉例。
            棧
            第一節(jié)。
            一、串的定義。
            二、串的基本操作。
            第二節(jié)。
            一、定長(zhǎng)順序存儲(chǔ)表示。
            二、堆分配存儲(chǔ)表示。
            三、串的塊鏈存儲(chǔ)表示。
            四、字符串操作的實(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);稀疏矩陣的定義和各種存儲(chǔ)結(jié)構(gòu),稀疏矩陣的轉(zhuǎn)置和相加的方法并了解其算法;廣義表的定義、存儲(chǔ)結(jié)構(gòu)和求廣義表的長(zhǎng)度及深度的算法,建立廣義表和輸出廣義表的方法并了解其算法。掌握數(shù)組的基本概念和基本操作的算法實(shí)現(xiàn);掌握稀疏矩陣的定義和各種存儲(chǔ)結(jié)構(gòu),掌握稀疏矩陣的轉(zhuǎn)置和相加的方法并了解其算法;掌握廣義表的定義、存儲(chǔ)結(jié)構(gòu)和求廣義表的長(zhǎng)度及深度的算法,掌握建立廣義表和輸出廣義表的方法并了解其算法。
            (二)教學(xué)內(nèi)容。
            主要內(nèi)容:稀疏矩陣的定義、存儲(chǔ)和運(yùn)算,廣義表的定義、存儲(chǔ)和運(yùn)算串的類型定義。教學(xué)重點(diǎn):特殊矩陣的壓縮存儲(chǔ),以及稀疏矩陣的三元組順序表示。教學(xué)難點(diǎn):特殊矩陣的壓縮存儲(chǔ),以及稀疏矩陣的三元組順序表示。
            第一節(jié)第二節(jié)。
            一、數(shù)組的存儲(chǔ)方式。
            二、數(shù)組元素存儲(chǔ)位置的計(jì)算。
            三、基本操作的實(shí)現(xiàn)。
            第三節(jié)。
            一、特殊矩陣。
            二、稀疏矩陣。
            第四節(jié)。
            一、廣義表的基本概念。
            二、廣義表的三個(gè)重要結(jié)論。
            第五節(jié)。
            一、頭尾鏈表存儲(chǔ)表示。
            二、擴(kuò)展線性鏈表存儲(chǔ)表示。
            第六節(jié)。
            一、求廣義表的深度。
            二、復(fù)制廣義表。
            三、建立廣義表的存儲(chǔ)結(jié)構(gòu)。
            (三)教學(xué)方法與形式。
            課堂講授、多媒體課件。
            (四)教學(xué)時(shí)數(shù)。
            6學(xué)時(shí)。
            第六章樹(shù)和二叉樹(shù)。
            (一)教學(xué)目的與要求。
            介紹樹(shù)的定義、性質(zhì)、存儲(chǔ)結(jié)構(gòu)及遍歷算法,握二叉樹(shù)的各種遍歷方法及其實(shí)現(xiàn),二叉樹(shù)的其他操作方法及實(shí)現(xiàn),樹(shù)、森林和二叉樹(shù)的轉(zhuǎn)換方法,哈夫曼樹(shù)的定義和構(gòu)造哈夫曼樹(shù)的方法,哈夫曼樹(shù)編碼的方法。掌握樹(shù)的定義、性質(zhì)、存儲(chǔ)結(jié)構(gòu)及遍歷算法,熟練掌握二叉樹(shù)的各種遍歷方法及其實(shí)現(xiàn),掌握二叉樹(shù)的其他操作方法及實(shí)現(xiàn),掌握樹(shù)、森林和二叉樹(shù)的轉(zhuǎn)換方法,掌握哈夫曼樹(shù)的定義和構(gòu)造哈夫曼樹(shù)的方法,了解哈夫曼樹(shù)編碼的方法。
            (二)教學(xué)內(nèi)容。
            主要內(nèi)容:樹(shù)的定義、性質(zhì)和表示方法,二叉樹(shù)的定義、性質(zhì)和存儲(chǔ)結(jié)構(gòu),二叉樹(shù)的各種遍歷方法及實(shí)現(xiàn),建立二叉樹(shù)、輸出二叉樹(shù)、求二叉樹(shù)深度等的操作方法及實(shí)現(xiàn),樹(shù)的存儲(chǔ)結(jié)構(gòu),進(jìn)行先根遍歷、后根遍歷和按層遍歷的方法及實(shí)現(xiàn),進(jìn)行樹(shù)與二叉樹(shù)的轉(zhuǎn)換方法,哈夫曼樹(shù)的定義、構(gòu)造哈夫曼樹(shù)的方法及哈夫曼編碼的方法。
            教學(xué)重點(diǎn):二叉樹(shù)和樹(shù)的遍歷及其應(yīng)用。
            教學(xué)難點(diǎn):實(shí)現(xiàn)二叉樹(shù)和樹(shù)的各種操作的遞歸算法。
            第一節(jié)。
            一、樹(shù)的定義。
            二、森林的定義。
            三、樹(shù)的抽象數(shù)據(jù)類型定義。
            第二節(jié)一、二叉樹(shù)的定義二、二叉樹(shù)的性質(zhì)三、二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)。
            第三節(jié)。
            一、遍歷二叉樹(shù)。
            二、線索二叉樹(shù)。
            第四節(jié)。
            一、樹(shù)的存儲(chǔ)結(jié)構(gòu)。
            二、森林與二叉樹(shù)的轉(zhuǎn)換。
            三、樹(shù)和森林的遍歷。
            第五節(jié)。
            一、最優(yōu)二叉樹(shù)(赫夫曼樹(shù))。
            二、赫夫曼編碼。
            (三)教學(xué)方法與形式。
            課堂講授、多媒體課件。
            (四)教學(xué)時(shí)數(shù)。
            10學(xué)時(shí)。
            最優(yōu)樹(shù)和赫夫曼編碼。
            樹(shù)和森林。
            遍歷二叉樹(shù)和線索二叉樹(shù)。
            二叉樹(shù)。
            樹(shù)的定義和基本術(shù)語(yǔ)。
            第七章圖。
            (一)教學(xué)目的與要求。
            介紹圖的定義和術(shù)語(yǔ);圖的存儲(chǔ)結(jié)構(gòu)及深度和廣度優(yōu)先搜索方法及其實(shí)現(xiàn);圖的生成樹(shù)的概念,求圖的最小生成樹(shù)的普里姆算法和克魯斯卡爾算法并了解其實(shí)現(xiàn)算法;拓?fù)渑判虻姆椒ú⒘私馄鋵?shí)現(xiàn)算法;計(jì)算關(guān)鍵路徑的方法及其實(shí)現(xiàn)算法。掌握?qǐng)D的定義和術(shù)語(yǔ);熟練掌握?qǐng)D的存儲(chǔ)結(jié)構(gòu)及深度和廣度優(yōu)先搜索方法及其實(shí)現(xiàn);掌握?qǐng)D的生成樹(shù)的概念,掌握求圖的最小生成樹(shù)的普里姆算法和克魯斯卡爾算法并了解其實(shí)現(xiàn)算法;掌握拓?fù)渑判虻姆椒ú⒘私馄鋵?shí)現(xiàn)算法;了解計(jì)算關(guān)鍵路徑的方法并了解其實(shí)現(xiàn)算法。
            (二)教學(xué)內(nèi)容。
            主要內(nèi)容:圖的定義和術(shù)語(yǔ),圖的鄰接矩陣、鄰接表和邊集數(shù)組表示,圖的深度和廣度優(yōu)先搜索遍歷,圖的生成樹(shù)和最小生成樹(shù),拓?fù)渑判颉?BR>    教學(xué)重點(diǎn):圖在鄰接矩陣與鄰接表上實(shí)現(xiàn)的遍歷算法(dfs和bfs)。教學(xué)難點(diǎn):基于遍歷算法的應(yīng)用。
            第一節(jié)。
            一、圖的定義。
            二、無(wú)向圖。
            三、有向圖。
            四、連通圖。
            五、生成樹(shù)。
            第二節(jié)。
            一、數(shù)組表示法。
            二、鄰接表三、十字鏈表。
            四、鄰接多重表。
            第三節(jié)。
            一、深度優(yōu)先搜索。
            二、廣度優(yōu)先搜索。
            三、連通分量。
            第四節(jié)。
            一、kruskal算法。
            二、prim算法。
            第五節(jié)。
            一、拓?fù)渑判颉?BR>    二、關(guān)鍵路徑。
            第六節(jié)。
            一、從某個(gè)源點(diǎn)到其余各項(xiàng)點(diǎn)的最短路徑。
            二、每一對(duì)頂點(diǎn)之間的最短路徑。
            (三)教學(xué)方法與形式。
            課堂講授、多媒體課件。
            (四)教學(xué)時(shí)數(shù)。
            12學(xué)時(shí)。
            最短路徑有向無(wú)環(huán)圖及其應(yīng)用。
            最小生成樹(shù)圖的遍歷圖的存儲(chǔ)表示圖的定義和術(shù)語(yǔ)。
            第八章查找表。
            (一)教學(xué)目的與要求。
            介紹順序表查找和有序表查找的方法及實(shí)現(xiàn);二叉排序樹(shù)和平衡二叉樹(shù)的定義、對(duì)二叉排序樹(shù)和平衡二叉樹(shù)進(jìn)行插入、刪除和查找的方法和實(shí)現(xiàn)。哈希表的定義,構(gòu)造哈希函數(shù)的多種方法,以及處理沖突的方法;b樹(shù)的定義,查找、插入和刪除元素的方法。熟練掌握順序表查找和有序表查找的方法及實(shí)現(xiàn);掌握二叉排序樹(shù)和平衡二叉樹(shù)的定義、熟練掌握對(duì)二叉排序樹(shù)和平衡二叉樹(shù)進(jìn)行插入、刪除和查找的方法和實(shí)現(xiàn)。掌握哈希表的定義,構(gòu)造哈希函數(shù)的多種方法,以及處理沖突的方法;了解b樹(shù)的定義,查找、插入和刪除元素的方法。
            (二)教學(xué)內(nèi)容。
            主要內(nèi)容:順序查找和二分查找,索引查找和分塊查找,散列查找,動(dòng)態(tài)查找樹(shù)表。教學(xué)重點(diǎn):順序查找、二分查找、二叉排序樹(shù)上查找以及散列表上查找的基本思想和算法實(shí)現(xiàn)。
            教學(xué)難點(diǎn):二叉排序樹(shù)的刪除算法。
            第一節(jié)。
            一、順序表的查找。
            二、有序表的查找。
            三、靜態(tài)樹(shù)表的查找。
            四、索引順序表的查找。
            第二節(jié)一、二叉排序樹(shù)。
            二、平衡二叉樹(shù)。
            三、動(dòng)態(tài)的m路搜索樹(shù)。
            四、b樹(shù)和b+樹(shù)基本概念。
            第三節(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)容:排序的概念,直接插入排序,冒泡排序和快排序,直接選擇排序和堆排序,歸并排序。
            哈希表動(dòng)態(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ù)的存儲(chǔ)方式。
            第二節(jié)。
            一、直接插入排序。
            二、其他插入排序。
            三、希爾排序。
            第三節(jié)。
            一、起泡排序算法。
            二、快速排序算法。
            第四節(jié)。
            一、簡(jiǎn)單選擇排序。
            二、樹(shù)形選擇排序。
            三、堆排序。
            第五節(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)及其適用場(chǎng)合。教學(xué)難點(diǎn):各種文件的結(jié)構(gòu)特點(diǎn)及其適用場(chǎng)合。
            第一節(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í)。
            三、考核方式。
            本課程的考核采用閉卷考試的方式,課程的總評(píng)成績(jī)由平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)和期末考試成績(jī)?nèi)糠纸M成,其中平時(shí)成績(jī)占總評(píng)成績(jī)的10%,實(shí)驗(yàn)成績(jī)占總評(píng)成績(jī)的30%,期末考試成績(jī)占總評(píng)成績(jī)的60%。
            四、教材選用。
            1、殷人昆,陶永雷,謝若陽(yáng)等:《數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcc++語(yǔ)言描述)》,清華大學(xué)出版社,2007.6年第二版。
            2、嚴(yán)蔚敏,吳偉民:《數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)》及《數(shù)據(jù)結(jié)構(gòu)題集(c語(yǔ)言版)》,清華大學(xué)出版社,2003年第一版。
            多關(guān)鍵碼文件散列文件isam文件和vsam文件。
            索引文件。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇四
            為了順利完成實(shí)驗(yàn)教學(xué)任務(wù),確保人身、設(shè)備的安全,培養(yǎng)嚴(yán)謹(jǐn)、踏實(shí)、實(shí)事求是的科學(xué)作風(fēng)和愛(ài)護(hù)國(guó)家財(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)書(shū),進(jìn)行必要的設(shè)計(jì)與計(jì)算。(2)熟悉實(shí)驗(yàn)內(nèi)容。
            (3)預(yù)先復(fù)習(xí),并按要求編寫(xiě)程序。(4)未完成預(yù)習(xí)任務(wù)者不得進(jìn)入實(shí)驗(yàn)室。
            2、遵守以下紀(jì)律:
            (1)在實(shí)驗(yàn)室不得做和實(shí)驗(yàn)無(wú)關(guān)的事情。
            (2)進(jìn)行任課老師指定內(nèi)容以外的實(shí)驗(yàn),必須經(jīng)指導(dǎo)教師同意。(3)遵守紀(jì)律,不遲到。
            (4)保持實(shí)驗(yàn)室內(nèi)安靜、整潔,愛(ài)護(hù)公物,不許亂寫(xiě)亂畫(huà)。
            實(shí)驗(yàn)環(huán)境。
            本實(shí)驗(yàn)在386以上的微機(jī)上進(jìn)行,運(yùn)行環(huán)境為vc6.0。
            實(shí)驗(yàn)報(bào)告要求。
            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)的問(wèn)題及對(duì)問(wèn)題的解決方案6.實(shí)驗(yàn)思考:(學(xué)生對(duì)本次實(shí)驗(yàn)的收獲的總結(jié))。
            實(shí)驗(yàn)一單鏈表。
            (一)一、實(shí)驗(yàn)?zāi)康摹?BR>    掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及其基本操作。
            二、預(yù)習(xí)要求。
            1、看懂書(shū)上的算法,深入理解鏈表的物理存儲(chǔ)模式和邏輯模式。
            2、根據(jù)要求,編寫(xiě)程序準(zhǔn)備上機(jī)調(diào)試。
            三、實(shí)驗(yàn)內(nèi)容。
            實(shí)現(xiàn)一個(gè)簡(jiǎn)單的學(xué)生信息管理系統(tǒng),該系統(tǒng)的功能有:
            1、利用單鏈表建立學(xué)生基本信息表。
            2、瀏覽每個(gè)學(xué)生的信息。
            3、根據(jù)學(xué)號(hào)查詢某個(gè)學(xué)生的基本信息。
            4、添加學(xué)生信息到單鏈表中。
            5、刪除一個(gè)學(xué)生的信息。
            四、實(shí)現(xiàn)提示。
            設(shè)計(jì)結(jié)點(diǎn)的結(jié)構(gòu)體類型,包括學(xué)生的學(xué)號(hào)、姓名、年齡、性別;要求設(shè)計(jì)一個(gè)簡(jiǎn)單的菜單界面,根據(jù)需要選擇所要進(jìn)行的操作;構(gòu)造函數(shù),每一個(gè)函數(shù)實(shí)現(xiàn)上述的一個(gè)功能。
            實(shí)驗(yàn)二單鏈表。
            (二)一、實(shí)驗(yàn)?zāi)康摹?BR>    掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及其基本操作。
            二、預(yù)習(xí)要求。
            1、看懂書(shū)上的算法,深入理解鏈表的物理存儲(chǔ)模式和邏輯模式。
            2、根據(jù)要求,編寫(xiě)程序準(zhǔn)備上機(jī)調(diào)試。
            三、實(shí)驗(yàn)內(nèi)容。
            1、實(shí)現(xiàn)單鏈表的就地逆置。
            2、建立兩個(gè)非遞減有序單鏈表,然后合并成一個(gè)非遞減鏈表。
            3、建立兩個(gè)非遞減有序單鏈表,然后合并成一個(gè)非遞增鏈表。
            4、編寫(xiě)一個(gè)主函數(shù),調(diào)試上述算法。
            四、選做題、思考題。
            1、如何用帶表頭結(jié)點(diǎn)的單鏈表作為多項(xiàng)式的存儲(chǔ)表示,實(shí)現(xiàn)兩個(gè)多項(xiàng)式的相加。
            2、約毖夫環(huán)的實(shí)現(xiàn)。
            3、如何利用文件實(shí)現(xiàn)學(xué)生信息的存取。
            實(shí)驗(yàn)三棧。
            一、實(shí)驗(yàn)?zāi)康摹?BR>    深入了解并掌握棧的特性及其在實(shí)際中的應(yīng)用;熟練掌握棧的算法實(shí)現(xiàn);運(yùn)用棧操作求解實(shí)際問(wèn)題。
            二、預(yù)習(xí)要求。
            1、看懂書(shū)上的算法,深入理解棧的特性和存儲(chǔ)結(jié)構(gòu),以便在實(shí)際問(wèn)題背景下靈活運(yùn)用。
            2、根據(jù)要求,編寫(xiě)程序準(zhǔn)備上機(jī)調(diào)試。
            三、實(shí)驗(yàn)內(nèi)容。
            利用棧實(shí)現(xiàn)數(shù)據(jù)的分類,要求當(dāng)輸入為偶數(shù)時(shí)進(jìn)棧1,當(dāng)輸入為奇數(shù)時(shí)進(jìn)棧2,最后分別從棧1和棧2輸出偶數(shù)和奇數(shù)序列。
            四、實(shí)現(xiàn)提示。
            1、開(kāi)辟一個(gè)連續(xù)的存儲(chǔ)空間,實(shí)現(xiàn)兩個(gè)棧順序存儲(chǔ)空間的共享;分別在兩端設(shè)置棧頂指針,并按要求實(shí)現(xiàn)棧操作。
            2、采用順序存儲(chǔ)實(shí)現(xiàn)棧的初始化、入棧、出棧操作。
            五、選做題、思考題。
            1、兩??臻g共享時(shí),棧滿的條件是什么?
            2、為停車場(chǎng)編制進(jìn)行管理的模擬程序(習(xí)題集p96,2.1)。
            3、編寫(xiě)程序,利用棧實(shí)現(xiàn)表達(dá)式求值。
            實(shí)驗(yàn)四二叉樹(shù)。
            一、實(shí)驗(yàn)?zāi)康摹?BR>    通過(guò)實(shí)踐掌握二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)和遍歷思想;掌握二叉樹(shù)的常見(jiàn)算法的程序?qū)崿F(xiàn)。
            二、預(yù)習(xí)要求。
            二叉樹(shù)的三種遍歷方法。
            三、實(shí)驗(yàn)內(nèi)容。
            1、輸入字符序列,建立二叉鏈表。
            2、利用棧,編寫(xiě)非遞歸算法,編程實(shí)現(xiàn)二叉樹(shù)的中序遍歷。
            3、求二叉樹(shù)的葉子結(jié)點(diǎn)個(gè)數(shù)。
            4、在主函數(shù)中設(shè)計(jì)一個(gè)簡(jiǎn)單的菜單,分別調(diào)試上述算法。
            四、選做題、思考題。
            1、如何實(shí)現(xiàn)二叉樹(shù)的后序遍歷(非遞歸)。
            2、如何求二叉樹(shù)的高度。
            實(shí)驗(yàn)五最短路徑(旅游景點(diǎn)導(dǎo)游咨詢模擬)。
            一、實(shí)驗(yàn)?zāi)康摹?BR>    利用圖的最短路徑原理為用戶提供路徑咨詢,掌握求最短路徑的算法并編程實(shí)現(xiàn)。
            二、預(yù)習(xí)要求。
            學(xué)習(xí)了解圖的存儲(chǔ)結(jié)構(gòu),掌握求最短路徑的兩種算法。
            三、實(shí)驗(yàn)內(nèi)容。
            設(shè)計(jì)一個(gè)旅游景點(diǎn)導(dǎo)游模擬程序,為來(lái)訪的客人提供景點(diǎn)最短路徑的信息查詢服務(wù),任意選取n城市,構(gòu)成一個(gè)有向帶權(quán)圖,圖中頂點(diǎn)表示城市,邊上的權(quán)值表示兩點(diǎn)間的距離,根據(jù)用戶指定的始點(diǎn)和終點(diǎn)輸出相應(yīng)的最短路徑。
            四、實(shí)現(xiàn)提示。
            咨詢以用戶和計(jì)算機(jī)的對(duì)話方式進(jìn)行,由用戶輸入起始點(diǎn)和終點(diǎn),輸出信息:最短路徑是多少?并指出所經(jīng)過(guò)的城市。存儲(chǔ)結(jié)構(gòu)可選用鄰接矩陣。
            五、選做題、思考題。
            1.如何實(shí)現(xiàn)對(duì)城市信息進(jìn)行編輯(如:添加或刪除)的功能。
            2.用鄰接表作存儲(chǔ)結(jié)構(gòu),求一指定景點(diǎn)出發(fā),到其余各景點(diǎn)的最短路徑。
            實(shí)驗(yàn)六內(nèi)部排序。
            一、實(shí)驗(yàn)?zāi)康摹?BR>    直觀感受算法的關(guān)鍵字比較次數(shù)和關(guān)鍵字移動(dòng)次數(shù)。
            二、預(yù)習(xí)要求。
            1、常見(jiàn)的排序算法(插入排序、交換排序、選擇排序、歸并排序、基數(shù)排序等)的思想、特點(diǎn)及其適用條件。
            2、根據(jù)要求,編寫(xiě)程序準(zhǔn)備上機(jī)調(diào)試。
            三、實(shí)驗(yàn)內(nèi)容。
            1、對(duì)直接插入排序和簡(jiǎn)單選擇排序算法進(jìn)行關(guān)鍵字比較次數(shù)和關(guān)鍵字移動(dòng)次數(shù)的比較。
            2、利用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),編寫(xiě)程序,實(shí)現(xiàn)直接插入排序和冒泡排序。
            四、實(shí)現(xiàn)提示。
            測(cè)試數(shù)據(jù)可以為幾組典型的數(shù)據(jù):正序、逆序、亂序。
            五、選做題、思考題。
            1、快速排序算法的非遞歸實(shí)現(xiàn)。
            2、結(jié)合實(shí)驗(yàn),理解針對(duì)不同待排元素的特點(diǎn)而選擇不同排序方法的重要性。
            3、如何對(duì)本實(shí)驗(yàn)進(jìn)行時(shí)間、空間的復(fù)雜度分析。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇五
            算法與數(shù)據(jù)結(jié)構(gòu)這一門(mén)課程,就是描述了數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),以及數(shù)據(jù)的運(yùn)算集合在計(jì)算機(jī)中的運(yùn)用和體現(xiàn)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)與數(shù)據(jù)之間的邏輯結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)就包含了順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、索引存儲(chǔ)和散列存儲(chǔ)。在這學(xué)期當(dāng)中,老師給我們主要講了順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。最后數(shù)據(jù)的運(yùn)算集合就是對(duì)于一批數(shù)據(jù),數(shù)據(jù)的運(yùn)算是定義在數(shù)據(jù)的邏輯結(jié)構(gòu)之上的,而運(yùn)算的具體實(shí)現(xiàn)依賴于數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。
            通過(guò)這學(xué)期的學(xué)習(xí),讓我在去年c語(yǔ)言的基礎(chǔ)上對(duì)數(shù)據(jù)與數(shù)據(jù)之間的邏輯關(guān)系有了更深的理解和認(rèn)識(shí)。以前在學(xué)matlab這一課程的時(shí)候,我們?nèi)绻獙?shí)現(xiàn)兩個(gè)數(shù)的加減乘除,或者一系列復(fù)雜的數(shù)據(jù)運(yùn)算,就直接的調(diào)用函數(shù)就行,套用規(guī)則符號(hào)和運(yùn)算格式,就能立馬知道結(jié)果。在學(xué)習(xí)c語(yǔ)言這一課程時(shí),我們逐漸開(kāi)始了解函數(shù)的調(diào)用的原理,利用子函數(shù)中包含的運(yùn)算規(guī)則,從而實(shí)現(xiàn)函數(shù)的功能。現(xiàn)今學(xué)習(xí)了算法,讓我更深層次的知道了通過(guò)順序表、指針、遞歸,能讓數(shù)據(jù)算法的實(shí)現(xiàn)更加的簡(jiǎn)潔,明了,更易于理解。摒棄了數(shù)據(jù)的冗雜性。
            在本書(shū)第二章中,主要介紹了順序表的實(shí)現(xiàn)以及運(yùn)用。順序表中我認(rèn)為最重要的是一個(gè)實(shí)型數(shù)組,和順序表的表長(zhǎng),不論是在一個(gè)數(shù)據(jù)的倒置、插入、刪除以及數(shù)據(jù)的排序過(guò)程中,都能將數(shù)據(jù)依次存入數(shù)組當(dāng)中,利用數(shù)組下標(biāo)之間的關(guān)系,就能實(shí)現(xiàn)數(shù)據(jù)的一系列操作了。在存儲(chǔ)棧中,給我留下最深刻的映像就是“先進(jìn)后出”,由于它特殊的存儲(chǔ)特性,所以在括號(hào)的匹配,算術(shù)表達(dá)式中被大量應(yīng)用。在存儲(chǔ)隊(duì)列之中,數(shù)據(jù)的刪除和存儲(chǔ)分別在表的兩端進(jìn)行操作,所以存儲(chǔ)數(shù)據(jù)很方便。為節(jié)省隊(duì)列浪費(fèi)閑置空間的這一大缺點(diǎn),所以引入了循環(huán)隊(duì)列這一概念,很好用。
            在第三章中,主要講的是鏈?zhǔn)酱鎯?chǔ)特性。它最突出的優(yōu)點(diǎn)就是可以選擇連續(xù)或者不連續(xù)的存儲(chǔ)空間都行。所以,不管是數(shù)據(jù)在插入或者刪除一個(gè)數(shù)據(jù)時(shí),會(huì)很方便,不會(huì)像順序表那樣,要移動(dòng)數(shù)組中的諸多元素。所以鏈表利用指針能很方便的進(jìn)行刪除或者插入操作。而鏈?zhǔn)皆跅:完?duì)列的基礎(chǔ)上,也有了多方面的應(yīng)用,所以在這些方面有了更多的應(yīng)用。
            第四章字符串中,基本的數(shù)組內(nèi)部元素的排序和字符串的匹配大部分代碼自己還是能夠理解,能夠看懂,如果真的要將所學(xué)的大量運(yùn)用于實(shí)踐的話,那就要多花些功夫和時(shí)間了。在對(duì)稱矩陣的壓縮,三角矩陣的壓縮,稀疏矩陣在存儲(chǔ)中能夠合理的進(jìn)行,能大大提高空間的開(kāi)支。
            在第五章遞歸當(dāng)中,就是在函數(shù)的定義之中出現(xiàn)了自己本身的調(diào)用,稱之為遞歸。而遞歸設(shè)計(jì)出來(lái)的程序,具有結(jié)構(gòu)清晰,可讀性強(qiáng),便于理解等優(yōu)點(diǎn)。但是由于遞歸在執(zhí)行的過(guò)程中,伴隨著函數(shù)自身的多次調(diào)用,因而執(zhí)行效率較低。如果要在追求執(zhí)行效率的情況下,往往采用非遞歸方式實(shí)現(xiàn)問(wèn)題的算法程序。
            在第六章數(shù)型結(jié)構(gòu)當(dāng)中,這是區(qū)別于線性結(jié)構(gòu)的另一大類數(shù)據(jù)結(jié)構(gòu),它具有分支性和層次性。它是數(shù)據(jù)表示,信息組織和程序設(shè)計(jì)的基礎(chǔ)和工具。在本章中,映像深刻的是樹(shù)的存儲(chǔ)結(jié)構(gòu)。有雙親表示法,孩子表示法,以及孩子兄弟表示法。在表示怎樣存儲(chǔ)數(shù)據(jù)之后,接著要從數(shù)型結(jié)構(gòu)中將數(shù)據(jù)讀取出來(lái),于是,有了樹(shù)的遍歷,在遍歷當(dāng)中,又分為前序、中序和后序遍歷,這三種遍歷各有各的特點(diǎn)。
            在第七章中,說(shuō)到了樹(shù)的擴(kuò)展---二叉樹(shù)。二叉樹(shù)不同一般的樹(shù)型結(jié)構(gòu)的另一種重要的非線性結(jié)構(gòu),它是處理兩種不同的數(shù)據(jù)結(jié)構(gòu),許多涉及樹(shù)的算法采用二叉樹(shù)表示和處理更加便捷和方便。其他的也是和一般的二叉樹(shù)差不多。還多了一個(gè)樹(shù)、森林和二叉樹(shù)之間的轉(zhuǎn)換。
            第八章的圍繞著圖來(lái)展開(kāi),它是一種復(fù)雜的非線性結(jié)構(gòu),在人工智能、網(wǎng)絡(luò)工程、數(shù)學(xué)、并行計(jì)算和工業(yè)設(shè)計(jì)有著廣泛的應(yīng)用。圖最重要的由一個(gè)非空的頂點(diǎn)集合和一個(gè)描述頂點(diǎn)之間的多對(duì)多關(guān)系的邊集合組成的一種數(shù)據(jù)結(jié)構(gòu)。圖的存儲(chǔ)室通過(guò)鄰接矩陣?yán)洗鎯?chǔ)圖的信息。而圖的讀取是通過(guò)深度優(yōu)先遍歷和廣度優(yōu)先遍歷實(shí)現(xiàn)。生成最小生成樹(shù)有prim算法和kruskal算法,相對(duì)于這兩種算法,后一種算法要更加易于理解。
            在考試的時(shí)候,我以為老師只會(huì)出題作業(yè)部分。然后書(shū)中有一小部分就沒(méi)看,但是題中出現(xiàn)了一個(gè)二叉樹(shù)轉(zhuǎn)換為森林的時(shí)候,我有印象,但就是沒(méi)思路想法了,就沒(méi)做。從中我真的理解了老師說(shuō)的,考試不代表學(xué)習(xí)的結(jié)束。或者你現(xiàn)在看的內(nèi)容在生活中學(xué)習(xí)中暫時(shí)沒(méi)有太大的作用,但是到了某一特定的環(huán)境條件下,總會(huì)有作用。所以,學(xué)習(xí)是一個(gè)積累的過(guò)程,不懈怠,踏實(shí)的走下去,你才會(huì)有所收獲。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇六
            數(shù)據(jù)結(jié)構(gòu)與算法是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)科學(xué)的核心課程,而且也已經(jīng)成為其他理工專業(yè)的熱門(mén)選修課??偟膩?lái)說(shuō)感觸還是比較深的,剛開(kāi)始上的時(shí)候還蠻簡(jiǎn)單的,越到后面感覺(jué)越難,算法也更復(fù)雜了,有時(shí)候甚至聽(tīng)不懂,老師上課時(shí)講的也蠻快的,所以只能靠課下下功夫了。下面是我對(duì)本學(xué)期學(xué)習(xí)這門(mén)課的總結(jié)。
            第一章的數(shù)據(jù)結(jié)構(gòu)和算法的引入,介紹了數(shù)據(jù)和數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、算法描述工具、算法和算法評(píng)價(jià)四個(gè)方面的知識(shí)。
            第二章具體地介紹了順序表的概念、基本運(yùn)算及其應(yīng)用。基本運(yùn)算有:初始化表、求表長(zhǎng)、排序、元素的查找、插入及刪除等。元素查找方法有:簡(jiǎn)單順序查找、二分查找和分塊查找。排序方法有:直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序及歸并排序等。最后介紹了順序串的概念,重點(diǎn)在于串的模式匹配。
            第三章主要介紹的是線性邏輯結(jié)構(gòu)的數(shù)據(jù)在鏈接存儲(chǔ)方法下數(shù)據(jù)結(jié)構(gòu)鏈表的相關(guān)知識(shí)。主要是單鏈表、循環(huán)鏈表的數(shù)據(jù)類型結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、基本運(yùn)算及其實(shí)現(xiàn)以及鏈表的相關(guān)應(yīng)用問(wèn)題,在此基礎(chǔ)上介紹了鏈串的相關(guān)知識(shí)。在應(yīng)用方面有多項(xiàng)式的相加問(wèn)題、歸并問(wèn)題、箱子排序問(wèn)題和鏈表在字符處理方面的應(yīng)用問(wèn)題等。本章未完全掌握的是循環(huán)鏈表的算法問(wèn)題和c的描述。
            第四章介紹在兩種不同的存儲(chǔ)結(jié)構(gòu)下設(shè)計(jì)的堆棧,即順序棧和鏈棧的相關(guān)知識(shí),了解堆棧的相關(guān)應(yīng)用,掌握應(yīng)用堆棧來(lái)解決實(shí)際問(wèn)題的思想及方法。本章主要內(nèi)容是順序棧和鏈棧的概念、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義和基本運(yùn)算算法及其性能分析。本章堆棧算法思想較為簡(jiǎn)單,所以能較好掌握。
            第五章主要介紹順序存儲(chǔ)和鏈接存儲(chǔ)方法下的兩種隊(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)類似,算法思想較為簡(jiǎn)單,所以能較好掌握;但難點(diǎn)重在循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問(wèn)題。
            第六章“特殊矩陣、廣義表及其應(yīng)用”將學(xué)習(xí)數(shù)組、稀疏矩陣和廣義表的基本概念,幾種特殊矩陣的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算,在此基礎(chǔ)上學(xué)習(xí)特殊矩陣的計(jì)算算法與廣義表應(yīng)用等相關(guān)問(wèn)題。本章的重點(diǎn)是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算算法。掌握了特殊矩陣的壓縮存儲(chǔ)結(jié)構(gòu),在該存儲(chǔ)結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計(jì)算和廣義表的存儲(chǔ)結(jié)構(gòu)。
            第七章二叉樹(shù)及其應(yīng)用。分為二叉樹(shù)的基本概念、二叉樹(shù)存儲(chǔ)結(jié)構(gòu)、二叉樹(shù)的遍歷算法、線索二叉樹(shù)、二叉樹(shù)的應(yīng)用(哈夫曼樹(shù)、二叉排序樹(shù)、堆和堆排序、基本算法)?;舅惴òǘ鏄?shù)的建立、遍歷、線索化等算法。在此基礎(chǔ)上,介紹二叉樹(shù)的一些應(yīng)用問(wèn)題,包括哈夫曼編碼問(wèn)題、(平衡)二叉排序樹(shù)問(wèn)題和堆排序問(wèn)題等。
            第八章說(shuō)的是樹(shù)和森林,首先我們要知道樹(shù)與二叉樹(shù)是不同的概念。課本介紹了樹(shù)和森林的概念、遍歷和存儲(chǔ)結(jié)構(gòu),還有樹(shù)、森林和二叉樹(shù)的相互關(guān)系,樹(shù)或森林怎樣轉(zhuǎn)化成二叉樹(shù),二叉樹(shù)又如何轉(zhuǎn)換為樹(shù)和森林等算法。
            第九章“散列結(jié)構(gòu)及其應(yīng)用”是邏輯結(jié)構(gòu)“集合型”的數(shù)據(jù)元素在散列存儲(chǔ)方法下的數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用知識(shí)內(nèi)容。主要介紹散列函數(shù)的概念、散列結(jié)構(gòu)的概念、散列存儲(chǔ)結(jié)構(gòu)的概念---散列表、散列函數(shù)和散列表中解決沖突的處理方法---開(kāi)放定址法、鏈地址法以及散列表的基本算法及其性能分析。本章概念較為多,所以掌握不太好。
            第十章圖及其應(yīng)用。分為圖的概念、圖的存儲(chǔ)結(jié)構(gòu)及其基本算法、圖的遍歷及算法、有向圖的連通性和最小生成樹(shù)、圖的最小生成樹(shù)、非連通圖的生成森林算法、最短路徑、有向無(wú)環(huán)圖及其應(yīng)用。
            二、對(duì)各知識(shí)點(diǎn)的掌握情況。
            我對(duì)各知識(shí)點(diǎn)的掌握情況總結(jié)如下:
            對(duì)于第一章對(duì)數(shù)據(jù)結(jié)構(gòu)的概念理解頗深,大概是每次都要談?wù)摰桨?。?duì)算法的時(shí)間性能,空間性能基本了解。這些在后面的章節(jié)都會(huì)有運(yùn)用。第二章本章重點(diǎn)和難點(diǎn)在查找和排序問(wèn)題的算法思想上,6種排序方法的性能比較。本章未掌握的為希爾排序、快速排序、歸并排序的時(shí)間復(fù)雜度分析。第三章,對(duì)鏈表掌握還好,對(duì)其數(shù)據(jù)結(jié)構(gòu)進(jìn)行了分析,有循環(huán)鏈表,掌握的不是很好,對(duì)其中一些用法不熟練。第四章堆棧,本章堆棧算法思想較為簡(jiǎn)單,所以能較好掌握,但表達(dá)式計(jì)算問(wèn)題未掌握好的。第五章的循環(huán)隊(duì)列隊(duì)空、隊(duì)滿的判斷條件問(wèn)題掌握的不是很好。第六章的重點(diǎn)是相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算算法。掌握了特殊矩陣的壓縮存儲(chǔ)結(jié)構(gòu),在該存儲(chǔ)結(jié)構(gòu)下元素的定位方法,理解了稀疏矩陣的計(jì)算和廣義表的存儲(chǔ)結(jié)構(gòu)。第七章對(duì)二叉樹(shù)掌握較好,其概念,存儲(chǔ),遍歷有很好的掌握。就是對(duì)二叉排序樹(shù)有點(diǎn)生疏,它的生成算法不是很會(huì)。第八章樹(shù)樹(shù)與二叉樹(shù)之間的轉(zhuǎn)換,森林與二叉樹(shù)的轉(zhuǎn)換算法思想基本掌握。第九章散列的一些知識(shí),沒(méi)有深入學(xué)習(xí),大概了解了散列存儲(chǔ)結(jié)構(gòu)散列表,散列函數(shù),沖突的處理方法。第十章了解了圖的逆鄰接表的存儲(chǔ)結(jié)構(gòu),關(guān)鍵路徑求解算法未能掌握好,不能靈活運(yùn)用圖的不同數(shù)據(jù)結(jié)構(gòu)和遍歷算法解決復(fù)雜的應(yīng)用問(wèn)題。
            三、學(xué)習(xí)體會(huì)。
            剛剛接觸這門(mén)課時(shí),看到課本中全是算法,當(dāng)時(shí)就暈了,因?yàn)槲业腸語(yǔ)言學(xué)的不好,我擔(dān)心會(huì)影響這門(mén)課的學(xué)習(xí),后來(lái)上課時(shí)老師說(shuō)學(xué)習(xí)這門(mén)課的基礎(chǔ)是c語(yǔ)言,所以我當(dāng)時(shí)就決定一定要好好補(bǔ)補(bǔ),爭(zhēng)取不被拖后腿,在學(xué)習(xí)這門(mén)課的期間,也遇到了不少問(wèn)。但是通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,讓我對(duì)程序有了新的認(rèn)識(shí),也有了更深的理解。同時(shí),也讓我認(rèn)識(shí)到,不管學(xué)習(xí)什么,概念是基礎(chǔ),所有的知識(shí)框架都是建立在基礎(chǔ)概念之上的,所以,第一遍看課本要將概念熟記于心,然后構(gòu)建知識(shí)框架。并且,對(duì)算法的學(xué)習(xí)是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。在第二遍看課本的過(guò)程中,要注重對(duì)算法的掌握。對(duì)于一個(gè)算法,讀一遍可能能讀懂,但不可能完全領(lǐng)會(huì)其中的思想。掌握一個(gè)算法,并不是說(shuō)將算法背過(guò),而是掌握算法的思想。我們需要的是耐心。每看一遍就會(huì)有這一遍的收獲。讀懂算法之后,自己再默寫(xiě)算法,寫(xiě)到不會(huì)的地方,看看課本想想自己為什么沒(méi)有想到。對(duì)算法的應(yīng)用上,學(xué)習(xí)算法的目的是利用算法解決實(shí)際問(wèn)題。會(huì)寫(xiě)課本上已有的算法之后,可以借其思想進(jìn)行擴(kuò)展,逐步提高編程能力。
            四、對(duì)課程教學(xué)的建議。
            1、課程課時(shí)較緊,課堂上的練習(xí)時(shí)間較少,講解的東西越多,頭腦有時(shí)就很混亂。
            2、感覺(jué)上課時(shí)的氣氛不是很好,雖然大部分人都在聽(tīng),可是效果不是很好。所以希望老師能在授課中間能穿插一些活躍課堂氛圍的話題,可以是大家都非常關(guān)心的一些內(nèi)容,這樣既讓大家能在思考之余有一個(gè)放松,也能夠提高學(xué)生的學(xué)習(xí)積極性和學(xué)習(xí)效率。
            3、學(xué)習(xí)的積極性很重要,有時(shí)候我們花了很長(zhǎng)時(shí)間去寫(xiě)實(shí)驗(yàn)報(bào)告,也很認(rèn)真的去理解去掌握,可是最后實(shí)驗(yàn)報(bào)告可能就只得了一個(gè)c,抄的人反而得a,這樣的話很容易打擊學(xué)生的積極性,在后面的實(shí)驗(yàn)報(bào)告中沒(méi)動(dòng)力再去認(rèn)真寫(xiě)。所以希望老師能在這方面有所調(diào)整。
            4、雖然講課的時(shí)間很緊,但是還是希望老師能在講述知識(shí)點(diǎn)的時(shí)候能運(yùn)用實(shí)際的調(diào)試程序來(lái)給我們講解,這樣的話能讓我們對(duì)這些內(nèi)容有更深刻的印象和理解。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇七
            完成了這次的二元多項(xiàng)式加減運(yùn)算問(wèn)題的課程設(shè)計(jì)后,我的心得體會(huì)很多,細(xì)細(xì)梳理一下,有以下幾點(diǎn):
            1、程序的編寫(xiě)中的語(yǔ)法錯(cuò)誤及修改。
            因?yàn)槲以诮鉀Q二元多項(xiàng)式問(wèn)題中,使用了鏈表的方式建立的二元多項(xiàng)式,所以程序的空間是動(dòng)態(tài)的生成的,而且鏈表可以靈活地添加或刪除結(jié)點(diǎn),所以使得程序得到簡(jiǎn)化。但是出現(xiàn)的語(yǔ)法問(wèn)題主要在于子函數(shù)和變量的定義,降序排序,關(guān)鍵字和函數(shù)名稱的書(shū)寫(xiě),以及一些庫(kù)函數(shù)的規(guī)范使用,這些問(wèn)題均可以根據(jù)編譯器的警告提示,對(duì)應(yīng)的將其解決。
            2、程序的設(shè)計(jì)中的邏輯問(wèn)題及其調(diào)整。
            我在設(shè)計(jì)程序的過(guò)程中遇到許多問(wèn)題,首先在選擇數(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ù)來(lái)看,由于要求是降冪排序且含有2個(gè)關(guān)鍵字,所以我先選擇x的指數(shù)作為第一關(guān)鍵字,先按x的降序來(lái)排序,當(dāng)x的指數(shù)相同時(shí),再以y為關(guān)鍵字,按照y的指數(shù)大小來(lái)進(jìn)行降序排列。
            另外,我在加法函數(shù)的編寫(xiě)過(guò)程中也遇到了大量的問(wèn)題,由于要同時(shí)比較多個(gè)關(guān)鍵字,而且設(shè)計(jì)中涉及了數(shù)組和鏈表的綜合運(yùn)用,導(dǎo)致反復(fù)修改了很長(zhǎng)的時(shí)間才完成了一個(gè)加法的設(shè)計(jì)。但是,現(xiàn)在仍然有一個(gè)問(wèn)題存在:若以0為系數(shù)的項(xiàng)是首項(xiàng)則顯示含有此項(xiàng),但是運(yùn)算后則自動(dòng)消除此項(xiàng),這樣是正確的。但是當(dāng)其不是首項(xiàng)的時(shí)候,加法函數(shù)在顯示的時(shí)候有0為系數(shù)的項(xiàng)時(shí),0前邊不顯示符號(hào),當(dāng)然,這樣也可以理解成當(dāng)系數(shù)為0時(shí),忽略這一項(xiàng)。這也是本程序中一個(gè)不完美的地方。
            我在設(shè)計(jì)減法函數(shù)的時(shí)候由于考慮不夠充分就直接編寫(xiě)程序,走了很多彎路,不得不停下來(lái)仔細(xì)研究算法,后來(lái)發(fā)現(xiàn)由于前邊的加法函數(shù)完全適用于減法,只不過(guò)是將二元多項(xiàng)式b的所有項(xiàng)取負(fù)再用加法函數(shù)即可,可見(jiàn)算法的重要性不低于程序本身。
            3、程序的調(diào)試中的經(jīng)驗(yàn)及體會(huì)。
            我在調(diào)試過(guò)程中,發(fā)生了許多小細(xì)節(jié)上的問(wèn)題,它們提醒了自己在以后編程的時(shí)候要注意細(xì)節(jié),即使是一個(gè)括號(hào)的遺漏或者一個(gè)字符的誤寫(xiě)都會(huì)造成大量的錯(cuò)誤,浪費(fèi)許多時(shí)間去尋找并修改,總結(jié)的教訓(xùn)就是寫(xiě)程序的時(shí)候,一定要仔細(xì)、認(rèn)真、專注。
            我還有一個(gè)很深的體會(huì)就是格式和注釋,由于平時(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)與算法心得篇八
            在兩周的學(xué)習(xí)和實(shí)踐過(guò)程中,通過(guò)解決學(xué)生搭配問(wèn)題這一實(shí)際問(wèn)題,讓我對(duì)循環(huán)隊(duì)列有了更深的了解,對(duì)數(shù)據(jù)結(jié)構(gòu)也產(chǎn)生了更加濃厚的興趣,同時(shí)也是對(duì)我解決實(shí)際問(wèn)題能力的一次提升。
            記得王教授給我們上課時(shí)就要不斷的通過(guò)走算法的方式,掌握所學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)、算法等,而上機(jī)則能進(jìn)一步鞏固自己所學(xué)的知識(shí)、提高自己的學(xué)習(xí)能力。在上機(jī)的同時(shí)也改正了自己對(duì)某些算法的錯(cuò)誤使用,使自己能在通過(guò)程序解決問(wèn)題時(shí)抓住關(guān)鍵算法,能夠很好的夠造出解決問(wèn)題的數(shù)據(jù)結(jié)構(gòu)、算法的設(shè)計(jì)思想和流程圖,并用c語(yǔ)言描繪出關(guān)鍵算法。
            首先對(duì)于這次的課程設(shè)計(jì)題目而言,主要是對(duì)隊(duì)列這一知識(shí)點(diǎn)的運(yùn)用。首先是對(duì)問(wèn)題的分析,明白題目的具體要求,即將現(xiàn)實(shí)生活中的舞會(huì)搭配問(wèn)題,用鏈隊(duì)列這一數(shù)據(jù)結(jié)構(gòu)描繪出來(lái)。用兩個(gè)鏈隊(duì)列boy和girl分別代表男生和女生,當(dāng)播放每一首歌曲時(shí),便可使兩隊(duì)各有一元素出隊(duì)列,這樣就可以模擬出搭配情況。同時(shí),由于題目要求系統(tǒng)能模擬動(dòng)態(tài)地顯示出上述過(guò)程,所以就考慮調(diào)用一個(gè)延遲函數(shù)sleep(),使歌曲之間有一段時(shí)間間隔,即模擬了顯示中的那一動(dòng)態(tài)過(guò)程。其次便是在實(shí)現(xiàn)過(guò)程中遇到的具體細(xì)節(jié)問(wèn)題,比如一開(kāi)始設(shè)計(jì)了兩個(gè)出對(duì)函數(shù)dequeue(),讓首元素結(jié)點(diǎn)出隊(duì),然后調(diào)用入隊(duì)函數(shù)add(),使其入隊(duì)到隊(duì)尾,但在測(cè)試時(shí)發(fā)現(xiàn),如果輸入的人數(shù)為2,那么在到第三首歌曲時(shí)程序便會(huì)終止;經(jīng)過(guò)分析發(fā)現(xiàn)是這兩個(gè)函數(shù)的調(diào)用,使數(shù)據(jù)出錯(cuò),所以就將這兩個(gè)出對(duì)函數(shù)用一個(gè)函數(shù)change()代替,這個(gè)函數(shù)能實(shí)現(xiàn)將首元素結(jié)點(diǎn)移到隊(duì)尾的功能。這樣不僅沒(méi)有了之前的問(wèn)題,而且使程序更加易懂。在這些細(xì)節(jié)方面的具體設(shè)計(jì),是對(duì)個(gè)人分析問(wèn)題、解決問(wèn)題能力的一個(gè)很好的鍛煉。通過(guò)這個(gè)過(guò)程的鍛煉,不僅能對(duì)所學(xué)的知識(shí)點(diǎn)有很好的掌握,而且還是對(duì)個(gè)人能力的很好的訓(xùn)練。
            其次,以前我對(duì)數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言描述)的一些標(biāo)準(zhǔn)庫(kù)函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)c語(yǔ)言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過(guò)實(shí)踐,使我在這幾個(gè)方面的認(rèn)識(shí)有所提高。讓自己有一定的能力去改正一些常見(jiàn)的錯(cuò)誤語(yǔ)法,很高興這兩周的學(xué)習(xí)讓我對(duì)數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言描述)有了新的認(rèn)識(shí),所以后在學(xué)習(xí)過(guò)程中,我會(huì)更加注視實(shí)踐操作,使自己便好地學(xué)好計(jì)算機(jī)。在這次課程設(shè)計(jì)的實(shí)驗(yàn)中,我收獲了許多知識(shí),通過(guò)查找大量資料,請(qǐng)教老師,以及不懈的努力,也培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力。我也學(xué)會(huì)了許多學(xué)習(xí)和解決實(shí)際問(wèn)題的方法,讓我受益匪淺。課程設(shè)計(jì)對(duì)我來(lái)說(shuō),趣味性強(qiáng),不僅鍛煉能力,而且可以學(xué)到很多東西,在與老師和同學(xué)的交流過(guò)程中,互動(dòng)學(xué)習(xí),將知識(shí)融會(huì)貫通,也增強(qiáng)了我和同學(xué)之間的團(tuán)隊(duì)合作的能力。讓我們知道只要努力,集中精力解決問(wèn)題,一定會(huì)有收獲的,過(guò)程也是很重要的。
            在這次課程設(shè)計(jì)中我們要學(xué)會(huì)利用時(shí)間,在規(guī)定的時(shí)間內(nèi)完成我們的任務(wù),要逐漸養(yǎng)成用c語(yǔ)言編寫(xiě)程序的良好習(xí)慣。這些對(duì)我來(lái)說(shuō)都是一種鍛煉,一個(gè)知識(shí)積累的過(guò)程,一種能力的提高。要打好基礎(chǔ),才能用更好的辦法,更簡(jiǎn)潔明了的程序解決實(shí)際問(wèn)題,只有這樣才能進(jìn)一步的取得更好的成績(jī)。我們會(huì)更加努力,努力的去彌補(bǔ)自己的缺點(diǎn),發(fā)展自己的優(yōu)點(diǎn),去充實(shí)自己,只有在了解了自己的長(zhǎng)短之后,我們會(huì)更加珍惜擁有的,更加努力的去完善它,增進(jìn)它。
            當(dāng)然我現(xiàn)在的水平還是很有限,但我還會(huì)繼續(xù)努力的,在解決實(shí)際問(wèn)題時(shí)如果遇到了難題,我們要學(xué)會(huì)去查找大量的有關(guān)這方面的資料,還要借助于網(wǎng)絡(luò)不斷擴(kuò)大自己的知識(shí)面和閱讀量。這樣也可以鍛煉我們的自主學(xué)習(xí)能力和解決問(wèn)題的能力,學(xué)到了許多以前沒(méi)學(xué)到的東西。
            在課程設(shè)計(jì)中的程序都比較復(fù)雜,所以需要我們要更加地細(xì)心,認(rèn)真的完成每一步的操作,修改語(yǔ)法,按照老師的指導(dǎo)思想來(lái)完成。還記得一開(kāi)始拿到題目時(shí)我們的一臉茫然,而現(xiàn)在是收獲滿滿的自信,每個(gè)人都或多或少有所收獲,也讓我們對(duì)程序設(shè)計(jì)和算法有了進(jìn)一步理解、認(rèn)識(shí)。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇九
            考試形式:半開(kāi)卷考試講課對(duì)象:計(jì)算機(jī)本科。
            建議教材:《數(shù)據(jù)結(jié)構(gòu)》(c語(yǔ)言版)陳明編著清華大學(xué)出版社。
            課程簡(jiǎn)介:數(shù)據(jù)結(jié)構(gòu)課程介紹如何組織各種數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)、傳遞和轉(zhuǎn)換。內(nèi)容包括:數(shù)組、鏈接表、棧和隊(duì)列、串、樹(shù)與森林、圖、排序、查找、索引與散列結(jié)構(gòu)等。課程以結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言c語(yǔ)言作為算法的描述工具,強(qiáng)化數(shù)據(jù)結(jié)構(gòu)基本知識(shí)和結(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è)的一門(mén)重要專業(yè)基礎(chǔ)課,是計(jì)算機(jī)學(xué)科的公認(rèn)主干課。課程內(nèi)容由數(shù)據(jù)結(jié)構(gòu)和算法分析初步兩部分組成。
            數(shù)據(jù)結(jié)構(gòu)是針對(duì)處理大量非數(shù)值性程序問(wèn)題而形成的一門(mén)學(xué)科,內(nèi)涵豐富、應(yīng)用范圍廣。它既有完整的學(xué)科體系和學(xué)科深度,又有較強(qiáng)的實(shí)踐性。通過(guò)課程的學(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)過(guò)上機(jī)實(shí)習(xí)和課程設(shè)計(jì)的訓(xùn)練,使學(xué)生能夠編制、調(diào)試具有一定難度的中型程序;以培養(yǎng)良好的軟件工程習(xí)慣和面向?qū)ο蟮能浖季S方法。
            “數(shù)據(jù)結(jié)構(gòu)”的前序課是《離散數(shù)學(xué)》、《c語(yǔ)言程序設(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):本章無(wú)。
            知識(shí)點(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)對(duì)抽象數(shù)據(jù)類型的理解。
            重點(diǎn)與難點(diǎn):鏈表是本章的重點(diǎn)和難點(diǎn)。扎實(shí)的指針操作和內(nèi)存動(dòng)態(tài)分配的編程技術(shù)是學(xué)好本章的基本要求,分清鏈表中指針p和結(jié)點(diǎn)*p之間的對(duì)應(yīng)關(guān)系,區(qū)分鏈表中的頭結(jié)點(diǎn)、頭指針和首元結(jié)點(diǎn)的不同所指以及循環(huán)鏈表、雙向鏈表的特點(diǎn)等。
            知識(shí)點(diǎn):線性表、順序表、鏈表、有序表。
            3、棧和隊(duì)列(4學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (1)掌握棧和隊(duì)列這兩種抽象數(shù)據(jù)類型的特點(diǎn),并能在相應(yīng)的應(yīng)用問(wèn)題中正確選用它們;
            (2)熟練掌握棧類型的兩種實(shí)現(xiàn)方法;
            (3)熟練掌握循環(huán)隊(duì)列和鏈隊(duì)列的基本操作實(shí)現(xiàn)算法;(4)理解遞歸算法執(zhí)行過(guò)程中棧的狀態(tài)變化過(guò)程。
            重點(diǎn)與難點(diǎn):棧和隊(duì)列是在程序設(shè)計(jì)中被廣泛使用的兩種線性數(shù)據(jù)結(jié)構(gòu),因此本章的學(xué)習(xí)重點(diǎn)在于掌握這兩種結(jié)構(gòu)的特點(diǎn),以便能在應(yīng)用問(wèn)題中正確使用。
            知識(shí)點(diǎn):順序棧、鏈棧、循環(huán)隊(duì)列、鏈隊(duì)列。
            4、串(2學(xué)時(shí))。
            (2)理解串類型的各種存儲(chǔ)表示方法;(3)理解串匹配的各種算法。
            重點(diǎn)和難點(diǎn):相對(duì)于其它各個(gè)知識(shí)點(diǎn)而言,本章非整個(gè)課程的重點(diǎn),鑒于串已是多數(shù)高級(jí)語(yǔ)言中已經(jīng)實(shí)現(xiàn)的數(shù)據(jù)類型,因此本章重點(diǎn)僅在于了解串類型定義中各基本操作的定義以及串的實(shí)現(xiàn)方法,并學(xué)會(huì)利用這些基本操作來(lái)實(shí)現(xiàn)串的其它操作。本章的難點(diǎn)是理解實(shí)現(xiàn)串匹配的kmp算法的思想。
            知識(shí)點(diǎn):串的類型定義、串的存儲(chǔ)表示、串匹配、kmp算法。
            5、數(shù)組和廣義表(4學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (2)掌握特殊矩陣的存儲(chǔ)壓縮表示方法;
            (3)理解稀疏矩陣的兩類存儲(chǔ)壓縮方法的特點(diǎn)及其適用范圍,領(lǐng)會(huì)以三元組表示稀疏矩陣時(shí)進(jìn)行矩陣運(yùn)算所采用的處理方法。
            重點(diǎn)和難點(diǎn):本章重點(diǎn)是學(xué)習(xí)數(shù)組類型的定義及其存儲(chǔ)表示。
            知識(shí)點(diǎn):數(shù)組的類型定義、數(shù)組的存儲(chǔ)表示、特殊矩陣的壓縮存儲(chǔ)表示方法、隨機(jī)稀疏矩陣的壓縮存儲(chǔ)表示方法。
            6、樹(shù)和二叉樹(shù)(8學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (3)熟練掌握二叉樹(shù)的各種遍歷算法,并能靈活運(yùn)用遍歷算法實(shí)現(xiàn)二叉樹(shù)的其它操作;
            (4)理解二叉樹(shù)的線索化過(guò)程以及在中序線索化樹(shù)上找給定結(jié)點(diǎn)的前驅(qū)和后繼的方法;
            (7)了解最優(yōu)樹(shù)的特性,掌握建立最優(yōu)樹(shù)和赫夫曼編碼的方法。
            重點(diǎn)和難點(diǎn):二叉樹(shù)和樹(shù)的遍歷及其應(yīng)用是本章的學(xué)習(xí)重點(diǎn),而編寫(xiě)實(shí)現(xiàn)二叉樹(shù)和樹(shù)的各種操作的遞歸算法也恰是本章的難點(diǎn)所在。
            知識(shí)點(diǎn):樹(shù)的類型定義、二叉樹(shù)的類型定義、二叉樹(shù)的存儲(chǔ)表示、二叉樹(shù)的遍歷以及其它操作的實(shí)現(xiàn)、線索二叉樹(shù)、樹(shù)和森林的存儲(chǔ)表示、樹(shù)和森林的遍歷以及其它操作的實(shí)現(xiàn)、最優(yōu)樹(shù)和赫夫曼編碼。
            7、圖(8學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (1)領(lǐng)會(huì)圖的類型定義;
            (2)熟悉圖的各種存儲(chǔ)結(jié)構(gòu)及其構(gòu)造算法,了解各種存儲(chǔ)結(jié)構(gòu)的特點(diǎn)及其選用原則;
            (3)熟練掌握?qǐng)D的兩種遍歷算法;(4)理解各種圖的應(yīng)用問(wèn)題的算法。
            重點(diǎn)和難點(diǎn):圖的應(yīng)用極為廣泛,而且圖的各種應(yīng)用問(wèn)題的算法都比較經(jīng)典,因此本章重點(diǎn)在于理解各種圖的算法及其應(yīng)用場(chǎng)合。
            知識(shí)點(diǎn):圖的類型定義、圖的存儲(chǔ)表示、圖的深度優(yōu)先搜索遍歷和圖的廣度優(yōu)先搜索遍歷、無(wú)向網(wǎng)的最小生成樹(shù)、最短路徑、拓?fù)渑判颉㈥P(guān)鍵路徑。
            8、查找(6學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (3)熟悉靜態(tài)查找樹(shù)的構(gòu)造方法和查找算法,理解靜態(tài)查找樹(shù)和折半查找的關(guān)系;
            (4)熟練掌握二叉查找樹(shù)的構(gòu)造和查找方法;(5)理解二叉平衡樹(shù)的構(gòu)造過(guò)程;
            (6)熟練掌握哈希表的構(gòu)造方法,深刻理解哈希表與其它結(jié)構(gòu)的表的實(shí)質(zhì)性的差別;
            (7)掌握描述查找過(guò)程的判定樹(shù)的構(gòu)造方法,以及按定義計(jì)算各種查找方法在等概率情況下查找成功時(shí)的平均查找長(zhǎng)度。
            重點(diǎn)和難點(diǎn):本章重點(diǎn)在于理解查找表的結(jié)構(gòu)特點(diǎn)及其各種表示方法的特點(diǎn)和適用場(chǎng)合。
            知識(shí)點(diǎn):順序表、有序表、索引順序表、靜態(tài)查找樹(shù)、二叉查找樹(shù)、二叉平衡樹(shù)、哈希表。
            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)。
            知識(shí)點(diǎn):排序、直接插入排序、折半插入排序、表插入排序、希爾排序、起泡排序、快速排序、簡(jiǎ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)及其適用場(chǎng)合。知識(shí)點(diǎn):順序文件、索引文件、b-樹(shù)、b+樹(shù)、索引順序文件、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)特征和類型說(shuō)明;掌握在這兩種表上實(shí)現(xiàn)的插入,刪除和按值查找的算法;了解循環(huán)鏈表,雙(循環(huán))鏈表的結(jié)構(gòu)特點(diǎn)和在其上施加的插入,刪除等操作。
            2、棧(0.5學(xué)時(shí))實(shí)驗(yàn)三棧的應(yīng)用。
            要求:理解棧的定義,特征及在其上所定義的基本運(yùn)算;掌握在兩種存儲(chǔ)結(jié)構(gòu)上對(duì)棧所施加的基本運(yùn)算的實(shí)現(xiàn)。
            3、隊(duì)列(0.5學(xué)時(shí))實(shí)驗(yàn)四隊(duì)列的應(yīng)用。
            要求:理解隊(duì)列的定義,特征及在其上所定義的基本運(yùn)算;掌握在兩種存儲(chǔ)結(jié)構(gòu)上對(duì)隊(duì)列所施加的基本運(yùn)算的實(shí)現(xiàn)。
            4、串(0.5學(xué)時(shí))實(shí)驗(yàn)五串的應(yīng)用。
            要求:了解串的定義;理解和領(lǐng)會(huì)串的存儲(chǔ)方式;掌握常用的串運(yùn)算。
            5、數(shù)組和廣義表(0.5學(xué)時(shí))實(shí)驗(yàn)六稀疏矩陣的應(yīng)用。
            要求:理解多維數(shù)組的結(jié)構(gòu)特點(diǎn)和在內(nèi)存中的兩種順序存儲(chǔ)方式;理解并掌握矩陣和特殊矩陣元素在存儲(chǔ)區(qū)中地址的計(jì)算;領(lǐng)會(huì)稀疏矩陣的壓縮方式和簡(jiǎn)單運(yùn)算;了解廣義表的定義和基本運(yùn)算。
            6、樹(shù)與二叉樹(shù)(4學(xué)時(shí))實(shí)驗(yàn)七樹(shù)與二叉樹(shù)的應(yīng)用。
            要求:理解樹(shù)的定義,術(shù)語(yǔ);領(lǐng)會(huì)并掌握樹(shù)的各種存儲(chǔ)結(jié)構(gòu);熟練掌握森林與二叉樹(shù)間的相互轉(zhuǎn)換;領(lǐng)會(huì)樹(shù)和森林的遍歷;了解樹(shù)的簡(jiǎn)單應(yīng)用。深刻理解二叉樹(shù)的定義,性質(zhì)及其存儲(chǔ)方法;熟練掌握二叉樹(shù)的二叉鏈表存儲(chǔ)方式,結(jié)點(diǎn)結(jié)構(gòu)和類型定義;理解并掌握二叉樹(shù)的三種遍歷算法;掌握二叉樹(shù)的線索化方法;靈活運(yùn)用二叉樹(shù)的遍歷方法解決相關(guān)的應(yīng)用問(wèn)題。
            7、圖(3學(xué)時(shí))實(shí)驗(yàn)八圖的應(yīng)用。
            要求:理解圖的基本概念及術(shù)語(yǔ);掌握?qǐng)D的兩種存儲(chǔ)結(jié)構(gòu)(鄰接矩陣和鄰接表)的表示方法;熟練掌握?qǐng)D的兩種遍歷(深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷)的算法思想,步驟,并能列出在兩種存儲(chǔ)結(jié)構(gòu)上按上述兩種遍歷算法得到的序列;理解最小生成樹(shù)的概念,能按prim算法構(gòu)造最小生成樹(shù);領(lǐng)會(huì)并掌握拓?fù)渑判颍P(guān)鍵路徑,最短路徑的算法思想。
            8、查找(3學(xué)時(shí))實(shí)驗(yàn)九順序查找實(shí)驗(yàn)十折半查找實(shí)驗(yàn)十一哈希表的應(yīng)用實(shí)驗(yàn)十二二叉排序樹(shù)的綜合練習(xí)要求:了解查找的基本思想及查找成功和不成功的概念;掌握在順序表,有序表,索引表,散列表等上的查找方法和算法,并能求出相應(yīng)的平均查找長(zhǎng)度;理解并掌握二叉排序樹(shù),平衡二叉樹(shù)b-樹(shù)的各種算法。
            9、排序(3學(xué)時(shí))實(shí)驗(yàn)十三插入排序?qū)嶒?yàn)十四選擇排序?qū)嶒?yàn)十五排序綜合練習(xí)。
            要求:領(lǐng)會(huì)排序的基本思想和基本概念;理解并掌握插入排序,冒泡排序,快速排序,直接選擇排序,堆排序,歸并排序和基數(shù)排序的基本思想,步驟,算法及時(shí)空效率分析;了解外排序的定義和基本方法。
            五、大綱說(shuō)明。
            1、課堂講述的論題只是核心或有特色的知識(shí)內(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í)安排說(shuō)明:前8周每周4學(xué)時(shí)全為理論課,從第9周開(kāi)始理論和上機(jī)為1:1,也即2學(xué)時(shí)理論,2學(xué)時(shí)上機(jī)訓(xùn)練。
            4、本課強(qiáng)調(diào)能力的培養(yǎng),期末采用半開(kāi)卷考試(允許同學(xué)攜帶一頁(yè)a4紙的總結(jié)資料)。本課成績(jī)由平時(shí)作業(yè)、上機(jī)成績(jī)(30%)和期末考試(70%)合成得到,有獨(dú)到見(jiàn)解的作業(yè)予以適當(dāng)加分。
            5、主要參考書(shū):
            [2]《數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)》(含cd)嚴(yán)蔚敏吳為民編著清華大學(xué)出版社。
            [3]《數(shù)據(jù)結(jié)構(gòu)習(xí)題集(c語(yǔ)言版)》嚴(yán)蔚敏編著清華大學(xué)出版社。
            [4]《數(shù)據(jù)結(jié)構(gòu)習(xí)題解析與實(shí)訓(xùn)》張世和編著清華大學(xué)出版社。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇十
            數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)中的重要基礎(chǔ)知識(shí),它能幫助我們有效地組織和存儲(chǔ)數(shù)據(jù),以便更高效地進(jìn)行操作和訪問(wèn)。在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過(guò)程中,我逐漸認(rèn)識(shí)到了它的重要性和實(shí)際應(yīng)用價(jià)值。下面我將結(jié)合自己的學(xué)習(xí)經(jīng)歷,分享一些關(guān)于數(shù)據(jù)結(jié)構(gòu)的心得體會(huì)。
            首先,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí),我意識(shí)到了算法和數(shù)據(jù)結(jié)構(gòu)之間的緊密聯(lián)系。算法是解決問(wèn)題的步驟序列,在實(shí)際應(yīng)用中,算法的效率取決于所選擇的數(shù)據(jù)結(jié)構(gòu)。不同的數(shù)據(jù)結(jié)構(gòu)適用于不同類型的問(wèn)題,如棧適用于括號(hào)匹配、隊(duì)列適用于廣度優(yōu)先搜索等。因此,在解決問(wèn)題時(shí),選擇合適的數(shù)據(jù)結(jié)構(gòu)對(duì)算法的效率起著至關(guān)重要的作用。
            其次,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)也讓我明白了程序的內(nèi)存管理問(wèn)題。在不合理的內(nèi)存分配和釋放下,程序可能產(chǎn)生內(nèi)存泄漏和內(nèi)存溢出等問(wèn)題,導(dǎo)致程序崩潰。而數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)往往直接涉及到內(nèi)存的使用和管理。比如,鏈表節(jié)點(diǎn)的申請(qǐng)和釋放,樹(shù)的遍歷時(shí)需要大量的遞歸調(diào)用等。因此,合理地設(shè)計(jì)和使用數(shù)據(jù)結(jié)構(gòu)可以避免這些內(nèi)存管理問(wèn)題,提高程序的穩(wěn)定性和性能。
            另外,數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)還能夠幫助我們解決實(shí)際的問(wèn)題。在現(xiàn)實(shí)生活中,我們經(jīng)常會(huì)遇到需要處理大量數(shù)據(jù)的情況,如圖書(shū)館的借書(shū)管理系統(tǒng)、電商平臺(tái)的訂單處理等。如果不使用適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),這些問(wèn)題將會(huì)變得異常困難。而數(shù)據(jù)結(jié)構(gòu)提供了一種抽象的方法來(lái)解決這些問(wèn)題,比如使用棧來(lái)模擬函數(shù)調(diào)用,使用哈希表來(lái)查詢數(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ò)展是常見(jiàn)的。而數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)往往也會(huì)受到這些變化的影響。因此,一個(gè)好的數(shù)據(jù)結(jié)構(gòu)應(yīng)該具備良好的靈活性和可擴(kuò)展性。比如,我曾經(jīng)在一個(gè)項(xiàng)目中使用了動(dòng)態(tài)數(shù)組,當(dāng)數(shù)據(jù)量變得很大時(shí),動(dòng)態(tài)數(shù)組的性能就會(huì)變得很差。后來(lái),我使用了鏈表來(lái)替代動(dòng)態(tài)數(shù)組,大大提高了程序的性能。這個(gè)經(jīng)歷讓我認(rèn)識(shí)到,在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí),要考慮到未來(lái)的擴(kuò)展和變化,選擇合適的數(shù)據(jù)結(jié)構(gòu)來(lái)滿足需求。
            綜上所述,數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)中的重要學(xué)科,它在我們的日常開(kāi)發(fā)工作中起著至關(guān)重要的作用。通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我深刻認(rèn)識(shí)到算法與數(shù)據(jù)結(jié)構(gòu)的關(guān)聯(lián),程序的內(nèi)存管理,實(shí)際問(wèn)題的解決以及程序設(shè)計(jì)的靈活性與可擴(kuò)展性。數(shù)據(jù)結(jié)構(gòu)不僅是計(jì)算機(jī)科學(xué)的基礎(chǔ),更是實(shí)際應(yīng)用中解決問(wèn)題的重要工具。通過(guò)不斷學(xué)習(xí)和實(shí)踐,我相信自己在數(shù)據(jù)結(jié)構(gòu)方面的能力將不斷提高,為解決實(shí)際問(wèn)題提供更好的解決方案。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇十一
            時(shí)光荏苒,如白駒過(guò)隙般匆匆而去,眼看的一年實(shí)習(xí)生活馬上就要成為美好的回憶。在這短短一年的時(shí)間里我感覺(jué)自己成長(zhǎng)了許多,從象牙塔邁出的第一步走的特別的穩(wěn)重,感謝學(xué)校給我提供了一個(gè)努力拼搏的舞臺(tái),讓我學(xué)會(huì)了如何面對(duì)這個(gè)真實(shí)的社會(huì),實(shí)現(xiàn)了從在校學(xué)子向職場(chǎng)人士的轉(zhuǎn)變。
            實(shí)習(xí)是繼中考后又一個(gè)人生的十字路口,它意味著人生一個(gè)新時(shí)期的到來(lái)——告別學(xué)校走入社會(huì)。社會(huì)是個(gè)大的集合,不管是以前的學(xué)校還是現(xiàn)在的實(shí)習(xí)單位都同屬這個(gè)集合。這幾個(gè)月來(lái),給我感覺(jué)學(xué)校純一點(diǎn),單位復(fù)雜一點(diǎn)。不過(guò)我知道不論學(xué)校還是單位其實(shí)都是社會(huì)的縮影。實(shí)習(xí)的真正目的就是讓我們這些在校的學(xué)生走入社會(huì)。社會(huì)是形形色色、方方面面的,你要學(xué)會(huì)的是適應(yīng)這個(gè)社會(huì)而不是讓這個(gè)社會(huì)適應(yīng)你。
            剛剛走進(jìn)社會(huì)不適應(yīng)是正常的。人有的時(shí)候很奇怪:心情或者更準(zhǔn)確地說(shuō)是熱情往往會(huì)因時(shí)間、環(huán)境、所經(jīng)歷的事而起伏。就像我對(duì)境界一詞的理解:人與他所受教育、所處環(huán)境、所經(jīng)歷對(duì)事物的理解、判斷、預(yù)知的程度就是這個(gè)人的境界。作為一名中專生,專業(yè)需求的建筑認(rèn)識(shí)實(shí)訓(xùn)開(kāi)始了,我們?nèi)珜I(yè)的同學(xué)在__的各大建筑工地認(rèn)識(shí)實(shí)習(xí),對(duì)于我當(dāng)初選擇土木工程這樣的專業(yè),說(shuō)真的我并不知道什么是土木工程?,F(xiàn)在我對(duì)土木工程有了基本的感性認(rèn)識(shí)了,我想任何事的認(rèn)識(shí)都是通過(guò)感性認(rèn)識(shí)上升到理性認(rèn)識(shí)的,這次認(rèn)識(shí)實(shí)習(xí)應(yīng)該是一個(gè)鍛煉的好機(jī)會(huì)!
            土木工程是建造各類工程設(shè)施的學(xué)科、技術(shù)和工程的總稱。它既指與與人類生活、生產(chǎn)活動(dòng)有關(guān)的各類工程設(shè)施,如建筑公程、公路與城市道路工程、鐵路工程、橋梁工程、隧道工程等,也指應(yīng)用材料、設(shè)備在土地上所進(jìn)行的勘測(cè)、設(shè)計(jì)、施工等工程技術(shù)活動(dòng)。
            我應(yīng)該知道現(xiàn)在的.我還不夠成熟,如果說(shuō)人生是一片海洋,那么我應(yīng)該在這片海洋里劈波斬浪,揚(yáng)帆遠(yuǎn)航而不是躲在避風(fēng)港里。只要經(jīng)歷多了,我就會(huì)成熟;我就會(huì)變強(qiáng)。我相信。那時(shí)的成功是領(lǐng)導(dǎo)、師傅們給我鼓勵(lì),是實(shí)習(xí)的經(jīng)歷給我力量,所以我感謝領(lǐng)導(dǎo)師傅還有我的好朋友們,也感謝學(xué)校給我這次實(shí)習(xí)的機(jī)會(huì)。一年的實(shí)習(xí)生活中,緊張過(guò),努力過(guò),醒悟過(guò),開(kāi)心過(guò)。這些從為有過(guò)的經(jīng)歷讓我進(jìn)步了,成長(zhǎng)了。學(xué)會(huì)了一些在學(xué)校從未學(xué)過(guò)以后也學(xué)不到的東西,也有很多的感悟。
            通過(guò)本次課程設(shè)計(jì),對(duì)圖的概念有了一個(gè)新的認(rèn)識(shí),在學(xué)習(xí)離散數(shù)學(xué)的時(shí)候,總覺(jué)得圖是很抽象的東西,但是在學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)與算法》這門(mén)課程之后,我慢慢地體會(huì)到了其中的奧妙,圖能夠在計(jì)算機(jī)中存在,首先要捕捉他有哪些具體化、數(shù)字化的信息,比如說(shuō)權(quán)值、頂點(diǎn)個(gè)數(shù)等,這也就說(shuō)明了想要把生活中的信息轉(zhuǎn)化到計(jì)算機(jī)中必須用數(shù)字來(lái)完整的構(gòu)成一個(gè)信息庫(kù),而圖的存在,又涉及到了頂點(diǎn)之間的聯(lián)系。圖分為有向圖和無(wú)向圖,而無(wú)向圖又是有向圖在權(quán)值雙向相等下的一種特例,如何能在計(jì)算機(jī)中表示一個(gè)雙向權(quán)值不同的圖,這就是一件很巧妙的事情,經(jīng)過(guò)了思考和老師同學(xué)的幫助,我用edges[i][j]=up和edges[j][i]=up就能實(shí)現(xiàn)了一個(gè)雙向圖信息的存儲(chǔ)。對(duì)整個(gè)程序而言,dijkstra算法始終都是核心內(nèi)容,其實(shí)這個(gè)算法在實(shí)際思考中并不難,也許我們誰(shuí)都知道找一個(gè)路徑最短的方法,及從頂點(diǎn)一步一步找最近的路線并與其直接距離相比較,但是,在計(jì)算機(jī)中實(shí)現(xiàn)這么一個(gè)很簡(jiǎn)單的想法就需要涉及到很多專業(yè)知識(shí),為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c語(yǔ)言為主,所以浪費(fèi)了很多時(shí)間,比如說(shuō)在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見(jiàn)在調(diào)用知識(shí)點(diǎn),我沒(méi)有掌握好。不過(guò),有了這次課程設(shè)計(jì)的經(jīng)驗(yàn)和教訓(xùn),我能夠很清楚的對(duì)自己定一個(gè)合適的水平,而且在這次課程設(shè)計(jì)中我學(xué)會(huì)了運(yùn)用兩個(gè)新的函數(shù)sprintf()和包涵在#include頭文件中的輸入函數(shù)。因?yàn)檎n程設(shè)計(jì)的題目是求最短路徑,本來(lái)是想通過(guò)算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬?lái)不及查找各地的信息,所以,這個(gè)計(jì)劃就沒(méi)有實(shí)現(xiàn),我相信在以后有更長(zhǎng)時(shí)間的情況下,我會(huì)做出來(lái)的。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇十二
            數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)中的重要學(xué)科,它研究了如何組織和存儲(chǔ)數(shù)據(jù)以便高效地訪問(wèn)和修改。在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過(guò)程中,我深刻體會(huì)到了思政教育的重要性,也認(rèn)識(shí)到了數(shù)據(jù)結(jié)構(gòu)對(duì)我們?nèi)粘I畹挠绊憽T谶@篇文章中,我將分享我在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)過(guò)程中的體會(huì)和心得。
            首先,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)讓我認(rèn)識(shí)到團(tuán)隊(duì)合作的重要性。在實(shí)踐中,我意識(shí)到一個(gè)高效的數(shù)據(jù)結(jié)構(gòu)能夠極大地提高程序的效率。然而,實(shí)現(xiàn)一個(gè)高效的數(shù)據(jù)結(jié)構(gòu)是一項(xiàng)復(fù)雜的任務(wù),需要多人的協(xié)作和努力。在團(tuán)隊(duì)合作的過(guò)程中,我學(xué)會(huì)了與他人溝通、互相交流和理解,并意識(shí)到了一個(gè)好的團(tuán)隊(duì)合作對(duì)于項(xiàng)目的成功是至關(guān)重要的。這使我深刻意識(shí)到,在生活和工作中,團(tuán)隊(duì)合作能夠帶來(lái)共同的成功,也讓我更加明白了團(tuán)結(jié)合作的力量。
            其次,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)讓我明白了信息的重要性。在當(dāng)今信息時(shí)代,數(shù)據(jù)的重要性不言而喻。而數(shù)據(jù)結(jié)構(gòu)正是為了高效的組織和存儲(chǔ)數(shù)據(jù)而存在的。通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我了解了不同的數(shù)據(jù)存儲(chǔ)和檢索方式,以及它們對(duì)于程序性能的影響。這讓我明白了合理地組織和利用數(shù)據(jù)對(duì)于提高效率和解決問(wèn)題的重要性。在生活中,我也開(kāi)始更加注重整理和管理個(gè)人信息,以便更好地利用它們。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不僅教會(huì)了我技術(shù)上的操作,更是教會(huì)了我在信息時(shí)代如何正確地利用信息。
            進(jìn)一步,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)培養(yǎng)了我分析和解決問(wèn)題的能力。在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過(guò)程中,我面臨了許多挑戰(zhàn),需要運(yùn)用所學(xué)的知識(shí)來(lái)解決問(wèn)題。通過(guò)分析問(wèn)題、尋找合適的數(shù)據(jù)結(jié)構(gòu)和算法,并編寫(xiě)有效的代碼,我逐漸培養(yǎng)了解決問(wèn)題的能力。這種能力不僅在編程中有用,更在解決現(xiàn)實(shí)生活中的問(wèn)題時(shí)起到了重要的作用。我明白了問(wèn)題解決的思路和方法論,并學(xué)會(huì)了在面對(duì)問(wèn)題時(shí)冷靜思考和迅速響應(yīng)。
            最后,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)加深了我對(duì)社會(huì)發(fā)展的思考。經(jīng)過(guò)學(xué)習(xí),我了解到數(shù)據(jù)結(jié)構(gòu)的發(fā)展歷程和應(yīng)用領(lǐng)域,并思考了它與社會(huì)發(fā)展的關(guān)系。數(shù)據(jù)結(jié)構(gòu)不僅為程序提供了高效的數(shù)據(jù)組織方式,還在互聯(lián)網(wǎng)、人工智能等領(lǐng)域扮演著重要的角色。通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我對(duì)科學(xué)技術(shù)的發(fā)展有了更深入的理解,也認(rèn)識(shí)到了我作為一名計(jì)算機(jī)專業(yè)學(xué)生的使命和責(zé)任。我要不斷學(xué)習(xí)和探索,為社會(huì)的發(fā)展盡自己的一份力量。
            綜上所述,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不僅是為了技術(shù)的掌握和應(yīng)用,更是為了培養(yǎng)思政教育中提倡的團(tuán)隊(duì)合作、信息利用、問(wèn)題解決和社會(huì)責(zé)任感。通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我明白了技術(shù)與思政的緊密聯(lián)系,并在實(shí)踐中體驗(yàn)到了這種聯(lián)系的重要性。因此,在今后的學(xué)習(xí)和工作中,我將更加注重培養(yǎng)思政教育所倡導(dǎo)的實(shí)踐能力和社會(huì)責(zé)任感,以更好地投身社會(huì),為社會(huì)的發(fā)展作出貢獻(xiàn)。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇十三
            考試形式:半開(kāi)卷考試講課對(duì)象:計(jì)算機(jī)本科。
            建議教材:《數(shù)據(jù)結(jié)構(gòu)》(c語(yǔ)言版)陳明編著清華大學(xué)出版社。
            課程簡(jiǎn)介:數(shù)據(jù)結(jié)構(gòu)課程介紹如何組織各種數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)、傳遞和轉(zhuǎn)換。內(nèi)容包括:數(shù)組、鏈接表、棧和隊(duì)列、串、樹(shù)與森林、圖、排序、查找、索引與散列結(jié)構(gòu)等。課程以結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言c語(yǔ)言作為算法的描述工具,強(qiáng)化數(shù)據(jù)結(jié)構(gòu)基本知識(shí)和結(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è)的一門(mén)重要專業(yè)基礎(chǔ)課,是計(jì)算機(jī)學(xué)科的公認(rèn)主干課。課程內(nèi)容由數(shù)據(jù)結(jié)構(gòu)和算法分析初步兩部分組成。
            數(shù)據(jù)結(jié)構(gòu)是針對(duì)處理大量非數(shù)值性程序問(wèn)題而形成的一門(mén)學(xué)科,內(nèi)涵豐富、應(yīng)用范圍廣。它既有完整的學(xué)科體系和學(xué)科深度,又有較強(qiáng)的實(shí)踐性。通過(guò)課程的學(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)過(guò)上機(jī)實(shí)習(xí)和課程設(shè)計(jì)的訓(xùn)練,使學(xué)生能夠編制、調(diào)試具有一定難度的中型程序;以培養(yǎng)良好的軟件工程習(xí)慣和面向?qū)ο蟮能浖季S方法。
            “數(shù)據(jù)結(jié)構(gòu)”的前序課是《離散數(shù)學(xué)》、《c語(yǔ)言程序設(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):本章無(wú)。
            知識(shí)點(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)對(duì)抽象數(shù)據(jù)類型的理解。
            重點(diǎn)與難點(diǎn):鏈表是本章的重點(diǎn)和難點(diǎn)。扎實(shí)的指針操作和內(nèi)存動(dòng)態(tài)分配的編程技術(shù)是學(xué)好本章的基本要求,分清鏈表中指針p和結(jié)點(diǎn)*p之間的對(duì)應(yīng)關(guān)系,區(qū)分鏈表中的頭結(jié)點(diǎn)、頭指針和首元結(jié)點(diǎn)的不同所指以及循環(huán)鏈表、雙向鏈表的特點(diǎn)等。
            知識(shí)點(diǎn):線性表、順序表、鏈表、有序表。
            3、棧和隊(duì)列(4學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (1)掌握棧和隊(duì)列這兩種抽象數(shù)據(jù)類型的特點(diǎn),并能在相應(yīng)的應(yīng)用問(wèn)題中正確選用它們;
            (2)熟練掌握棧類型的兩種實(shí)現(xiàn)方法;
            (3)熟練掌握循環(huán)隊(duì)列和鏈隊(duì)列的基本操作實(shí)現(xiàn)算法;(4)理解遞歸算法執(zhí)行過(guò)程中棧的狀態(tài)變化過(guò)程。
            重點(diǎn)與難點(diǎn):棧和隊(duì)列是在程序設(shè)計(jì)中被廣泛使用的兩種線性數(shù)據(jù)結(jié)構(gòu),因此本章的學(xué)習(xí)重點(diǎn)在于掌握這兩種結(jié)構(gòu)的特點(diǎn),以便能在應(yīng)用問(wèn)題中正確使用。
            知識(shí)點(diǎn):順序棧、鏈棧、循環(huán)隊(duì)列、鏈隊(duì)列。
            4、串(2學(xué)時(shí))。
            (2)理解串類型的各種存儲(chǔ)表示方法;(3)理解串匹配的各種算法。
            重點(diǎn)和難點(diǎn):相對(duì)于其它各個(gè)知識(shí)點(diǎn)而言,本章非整個(gè)課程的重點(diǎn),鑒于串已是多數(shù)高級(jí)語(yǔ)言中已經(jīng)實(shí)現(xiàn)的數(shù)據(jù)類型,因此本章重點(diǎn)僅在于了解串類型定義中各基本操作的定義以及串的實(shí)現(xiàn)方法,并學(xué)會(huì)利用這些基本操作來(lái)實(shí)現(xiàn)串的其它操作。本章的難點(diǎn)是理解實(shí)現(xiàn)串匹配的kmp算法的思想。
            知識(shí)點(diǎn):串的類型定義、串的存儲(chǔ)表示、串匹配、kmp算法。
            5、數(shù)組和廣義表(4學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (2)掌握特殊矩陣的存儲(chǔ)壓縮表示方法;
            (3)理解稀疏矩陣的兩類存儲(chǔ)壓縮方法的特點(diǎn)及其適用范圍,領(lǐng)會(huì)以三元組表示稀疏矩陣時(shí)進(jìn)行矩陣運(yùn)算所采用的處理方法。
            重點(diǎn)和難點(diǎn):本章重點(diǎn)是學(xué)習(xí)數(shù)組類型的定義及其存儲(chǔ)表示。
            知識(shí)點(diǎn):數(shù)組的類型定義、數(shù)組的存儲(chǔ)表示、特殊矩陣的壓縮存儲(chǔ)表示方法、隨機(jī)稀疏矩陣的壓縮存儲(chǔ)表示方法。
            6、樹(shù)和二叉樹(shù)(8學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (3)熟練掌握二叉樹(shù)的各種遍歷算法,并能靈活運(yùn)用遍歷算法實(shí)現(xiàn)二叉樹(shù)的其它操作;
            (4)理解二叉樹(shù)的線索化過(guò)程以及在中序線索化樹(shù)上找給定結(jié)點(diǎn)的前驅(qū)和后繼的方法;
            (7)了解最優(yōu)樹(shù)的特性,掌握建立最優(yōu)樹(shù)和赫夫曼編碼的方法。
            重點(diǎn)和難點(diǎn):二叉樹(shù)和樹(shù)的遍歷及其應(yīng)用是本章的學(xué)習(xí)重點(diǎn),而編寫(xiě)實(shí)現(xiàn)二叉樹(shù)和樹(shù)的各種操作的遞歸算法也恰是本章的難點(diǎn)所在。
            知識(shí)點(diǎn):樹(shù)的類型定義、二叉樹(shù)的類型定義、二叉樹(shù)的存儲(chǔ)表示、二叉樹(shù)的遍歷以及其它操作的實(shí)現(xiàn)、線索二叉樹(shù)、樹(shù)和森林的存儲(chǔ)表示、樹(shù)和森林的遍歷以及其它操作的實(shí)現(xiàn)、最優(yōu)樹(shù)和赫夫曼編碼。
            7、圖(8學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (1)領(lǐng)會(huì)圖的類型定義;
            (2)熟悉圖的各種存儲(chǔ)結(jié)構(gòu)及其構(gòu)造算法,了解各種存儲(chǔ)結(jié)構(gòu)的特點(diǎn)及其選用原則;
            (3)熟練掌握?qǐng)D的兩種遍歷算法;(4)理解各種圖的應(yīng)用問(wèn)題的算法。
            重點(diǎn)和難點(diǎn):圖的應(yīng)用極為廣泛,而且圖的各種應(yīng)用問(wèn)題的算法都比較經(jīng)典,因此本章重點(diǎn)在于理解各種圖的算法及其應(yīng)用場(chǎng)合。
            知識(shí)點(diǎn):圖的類型定義、圖的存儲(chǔ)表示、圖的深度優(yōu)先搜索遍歷和圖的廣度優(yōu)先搜索遍歷、無(wú)向網(wǎng)的最小生成樹(shù)、最短路徑、拓?fù)渑判?、關(guān)鍵路徑。
            8、查找(6學(xué)時(shí))。
            學(xué)習(xí)目標(biāo):
            (3)熟悉靜態(tài)查找樹(shù)的構(gòu)造方法和查找算法,理解靜態(tài)查找樹(shù)和折半查找的關(guān)系;
            (4)熟練掌握二叉查找樹(shù)的構(gòu)造和查找方法;(5)理解二叉平衡樹(shù)的構(gòu)造過(guò)程;
            (6)熟練掌握哈希表的構(gòu)造方法,深刻理解哈希表與其它結(jié)構(gòu)的表的實(shí)質(zhì)性的差別;
            (7)掌握描述查找過(guò)程的判定樹(shù)的構(gòu)造方法,以及按定義計(jì)算各種查找方法在等概率情況下查找成功時(shí)的平均查找長(zhǎng)度。
            重點(diǎn)和難點(diǎn):本章重點(diǎn)在于理解查找表的結(jié)構(gòu)特點(diǎn)及其各種表示方法的特點(diǎn)和適用場(chǎng)合。
            知識(shí)點(diǎn):順序表、有序表、索引順序表、靜態(tài)查找樹(shù)、二叉查找樹(shù)、二叉平衡樹(shù)、哈希表。
            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)。
            知識(shí)點(diǎn):排序、直接插入排序、折半插入排序、表插入排序、希爾排序、起泡排序、快速排序、簡(jiǎ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)及其適用場(chǎng)合。知識(shí)點(diǎn):順序文件、索引文件、b-樹(shù)、b+樹(shù)、索引順序文件、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)特征和類型說(shuō)明;掌握在這兩種表上實(shí)現(xiàn)的插入,刪除和按值查找的算法;了解循環(huán)鏈表,雙(循環(huán))鏈表的結(jié)構(gòu)特點(diǎn)和在其上施加的插入,刪除等操作。
            2、棧(0.5學(xué)時(shí))實(shí)驗(yàn)三棧的應(yīng)用。
            要求:理解棧的定義,特征及在其上所定義的基本運(yùn)算;掌握在兩種存儲(chǔ)結(jié)構(gòu)上對(duì)棧所施加的基本運(yùn)算的實(shí)現(xiàn)。
            3、隊(duì)列(0.5學(xué)時(shí))實(shí)驗(yàn)四隊(duì)列的應(yīng)用。
            要求:理解隊(duì)列的定義,特征及在其上所定義的基本運(yùn)算;掌握在兩種存儲(chǔ)結(jié)構(gòu)上對(duì)隊(duì)列所施加的基本運(yùn)算的實(shí)現(xiàn)。
            4、串(0.5學(xué)時(shí))實(shí)驗(yàn)五串的應(yīng)用。
            要求:了解串的定義;理解和領(lǐng)會(huì)串的存儲(chǔ)方式;掌握常用的串運(yùn)算。
            5、數(shù)組和廣義表(0.5學(xué)時(shí))實(shí)驗(yàn)六稀疏矩陣的應(yīng)用。
            要求:理解多維數(shù)組的結(jié)構(gòu)特點(diǎn)和在內(nèi)存中的兩種順序存儲(chǔ)方式;理解并掌握矩陣和特殊矩陣元素在存儲(chǔ)區(qū)中地址的計(jì)算;領(lǐng)會(huì)稀疏矩陣的壓縮方式和簡(jiǎn)單運(yùn)算;了解廣義表的定義和基本運(yùn)算。
            6、樹(shù)與二叉樹(shù)(4學(xué)時(shí))實(shí)驗(yàn)七樹(shù)與二叉樹(shù)的應(yīng)用。
            要求:理解樹(shù)的定義,術(shù)語(yǔ);領(lǐng)會(huì)并掌握樹(shù)的各種存儲(chǔ)結(jié)構(gòu);熟練掌握森林與二叉樹(shù)間的相互轉(zhuǎn)換;領(lǐng)會(huì)樹(shù)和森林的遍歷;了解樹(shù)的簡(jiǎn)單應(yīng)用。深刻理解二叉樹(shù)的定義,性質(zhì)及其存儲(chǔ)方法;熟練掌握二叉樹(shù)的二叉鏈表存儲(chǔ)方式,結(jié)點(diǎn)結(jié)構(gòu)和類型定義;理解并掌握二叉樹(shù)的三種遍歷算法;掌握二叉樹(shù)的線索化方法;靈活運(yùn)用二叉樹(shù)的遍歷方法解決相關(guān)的應(yīng)用問(wèn)題。
            7、圖(3學(xué)時(shí))實(shí)驗(yàn)八圖的應(yīng)用。
            要求:理解圖的基本概念及術(shù)語(yǔ);掌握?qǐng)D的兩種存儲(chǔ)結(jié)構(gòu)(鄰接矩陣和鄰接表)的表示方法;熟練掌握?qǐng)D的兩種遍歷(深度優(yōu)先搜索遍歷和廣度優(yōu)先搜索遍歷)的算法思想,步驟,并能列出在兩種存儲(chǔ)結(jié)構(gòu)上按上述兩種遍歷算法得到的序列;理解最小生成樹(shù)的概念,能按prim算法構(gòu)造最小生成樹(shù);領(lǐng)會(huì)并掌握拓?fù)渑判颍P(guān)鍵路徑,最短路徑的算法思想。
            8、查找(3學(xué)時(shí))實(shí)驗(yàn)九順序查找實(shí)驗(yàn)十折半查找實(shí)驗(yàn)十一哈希表的應(yīng)用實(shí)驗(yàn)十二二叉排序樹(shù)的綜合練習(xí)要求:了解查找的基本思想及查找成功和不成功的概念;掌握在順序表,有序表,索引表,散列表等上的查找方法和算法,并能求出相應(yīng)的平均查找長(zhǎng)度;理解并掌握二叉排序樹(shù),平衡二叉樹(shù)b-樹(shù)的各種算法。
            9、排序(3學(xué)時(shí))實(shí)驗(yàn)十三插入排序?qū)嶒?yàn)十四選擇排序?qū)嶒?yàn)十五排序綜合練習(xí)。
            要求:領(lǐng)會(huì)排序的基本思想和基本概念;理解并掌握插入排序,冒泡排序,快速排序,直接選擇排序,堆排序,歸并排序和基數(shù)排序的基本思想,步驟,算法及時(shí)空效率分析;了解外排序的定義和基本方法。
            五、大綱說(shuō)明。
            1、課堂講述的論題只是核心或有特色的知識(shí)內(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í)安排說(shuō)明:前8周每周4學(xué)時(shí)全為理論課,從第9周開(kāi)始理論和上機(jī)為1:1,也即2學(xué)時(shí)理論,2學(xué)時(shí)上機(jī)訓(xùn)練。
            4、本課強(qiáng)調(diào)能力的培養(yǎng),期末采用半開(kāi)卷考試(允許同學(xué)攜帶一頁(yè)a4紙的總結(jié)資料)。本課成績(jī)由平時(shí)作業(yè)、上機(jī)成績(jī)(30%)和期末考試(70%)合成得到,有獨(dú)到見(jiàn)解的作業(yè)予以適當(dāng)加分。
            5、主要參考書(shū):
            [1]《數(shù)據(jù)結(jié)構(gòu)與算法教程》鄒永林周蓓唐曉陽(yáng)楊劍勇編著機(jī)械工業(yè)出版社。
            [2]《數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)》(含cd)嚴(yán)蔚敏吳為民編著清華大學(xué)出版社。
            [3]《數(shù)據(jù)結(jié)構(gòu)習(xí)題集(c語(yǔ)言版)》嚴(yán)蔚敏編著清華大學(xué)出版社。
            [4]《數(shù)據(jù)結(jié)構(gòu)習(xí)題解析與實(shí)訓(xùn)》張世和編著清華大學(xué)出版社。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇十四
            本次課程設(shè)計(jì)所用到的知識(shí)完全是上學(xué)期的知識(shí),通過(guò)這次課程設(shè)計(jì),我認(rèn)識(shí)到了我對(duì)數(shù)據(jù)結(jié)構(gòu)這門(mén)課的掌握程度。
            首先我這個(gè)課程設(shè)計(jì)是關(guān)于二叉樹(shù)的,由于是剛接觸二叉樹(shù),所以我掌握的長(zhǎng)度并不深。在編程之前我把有關(guān)于二叉樹(shù)的知識(shí)有溫習(xí)了一遍,還好并沒(méi)有忘掉。二叉樹(shù)這章節(jié)難度中上等,而且內(nèi)容廣泛,所以我只掌握了百分之六七十。
            然后,在編程中我認(rèn)識(shí)到了自己動(dòng)手能力的不足,雖然相比較大二而言進(jìn)步很大,但是我還是不滿意,有的在編程中必須看書(shū)才能寫(xiě)出來(lái),有的靠百度,很少是自己寫(xiě)的。還好,我自己組裝程序的能力還行,要不這東拼西湊的程序根本組裝不了。在編程中我還認(rèn)識(shí)到了,編程不能停下,如果編程的時(shí)間少了,知識(shí)忘的會(huì)很快,而且動(dòng)手也會(huì)很慢。同時(shí),同學(xué)之間的合作也很重要,每個(gè)人掌握的知識(shí)都不一樣,而且掌握程度也不一樣,你不會(huì)的別的同學(xué)會(huì),所以在大家的共同努力下,編程會(huì)變得很容易。在這次編程中,我了解到了自己某些方面的不足,比如說(shuō)鏈表的知識(shí),雖然我能做一些有關(guān)于鏈表的編程,但是很慢,沒(méi)有別人編程的快,另外,二叉樹(shù)和圖的知識(shí)最不好掌握,這方面的知識(shí)廣泛而復(fù)雜。以前,沒(méi)動(dòng)手編程的時(shí)候覺(jué)得這些知識(shí)很容易,現(xiàn)在編程了才發(fā)現(xiàn)自己錯(cuò)了,大錯(cuò)特錯(cuò)了,我們這個(gè)專業(yè)最重視的就是動(dòng)手編程能力,如果我們紙上寫(xiě)作能力很強(qiáng)而動(dòng)手編程能力很差,那我們就白上這個(gè)專業(yè)了。計(jì)算機(jī)這個(gè)專業(yè)就是鍛煉動(dòng)手編程能力的,一個(gè)人的理論知識(shí)再好,沒(méi)有動(dòng)手編程能力,那他只是一個(gè)計(jì)算機(jī)專業(yè)的“入門(mén)者”。在編程中我們能找到滿足,如果我們自己編程了一個(gè)程序,我們會(huì)感到自豪,而且充實(shí),因?yàn)槿绻覀儗Q幸粋€(gè)難得程序,我們會(huì)達(dá)到忘我的境界,自己完全沉浸在編程的那種樂(lè)趣之中,完全會(huì)廢寢忘食。編程雖然會(huì)乏味很無(wú)聊,但是只要我們沉浸其中,你就會(huì)發(fā)現(xiàn)里面的`樂(lè)趣,遇到難得,你會(huì)勇往直前,不寫(xiě)出來(lái)永不罷休;遇到容易的,你會(huì)找到樂(lè)趣。編程是很乏味,但是那是因?yàn)槟銢](méi)找到編程重的樂(lè)趣,你只看到了他的不好,而沒(méi)有看到他的好。其實(shí),只要你找到編程中得樂(lè)趣,你就會(huì)完全喜歡上他,不編程還好,一編程你就會(huì)變成一個(gè)兩耳不聞窗外事的“植物人”??梢哉f(shuō)只要你涉及到了計(jì)算機(jī),你就的會(huì)編程,而且還要喜歡上他,永遠(yuǎn)和他打交道,我相信在某一天,我們一定會(huì)把他當(dāng)作我們不可或缺的好朋友。
            “數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)與算法”理論和實(shí)驗(yàn)課程后進(jìn)行的一次全面的綜合練習(xí)。其目的是要達(dá)到理論與實(shí)際應(yīng)用相結(jié)合,提高學(xué)生組織數(shù)據(jù)及編寫(xiě)程序的能力,使學(xué)生能夠根據(jù)問(wèn)題要求和數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)組織的方法,把現(xiàn)實(shí)世界中的實(shí)際問(wèn)題在計(jì)算機(jī)內(nèi)部表示出來(lái)并用軟件解決問(wèn)題,培養(yǎng)良好的程序設(shè)計(jì)技能。
            當(dāng)初拿到這次課程設(shè)計(jì)題目時(shí),似乎無(wú)從下手,但是經(jīng)過(guò)分析可知,對(duì)于簡(jiǎn)單文本編輯器來(lái)說(shuō)功能有限,不外乎創(chuàng)作文本、顯示文本、統(tǒng)計(jì)文本中字母—數(shù)字—空格—特殊字符—文本總字?jǐn)?shù)、查找、刪除及插入這幾項(xiàng)功能。于是,我進(jìn)行分模塊進(jìn)行編寫(xiě)程序。雖然每個(gè)模塊程序并不大,但是每個(gè)模塊都要經(jīng)過(guò)一番思考才能搞清其算法思想,只要有了算法思想,再加上c程序語(yǔ)言基礎(chǔ),基本完成功能,但是,每個(gè)模塊不可能一次完成而沒(méi)有一點(diǎn)錯(cuò)誤,所以,我給自己定了一個(gè)初級(jí)目標(biāo):用c語(yǔ)言大體描述每個(gè)算法,然后經(jīng)調(diào)試后改掉其中明顯的錯(cuò)誤,并且根據(jù)調(diào)試結(jié)果改正一些算法錯(cuò)誤,當(dāng)然,這一目標(biāo)實(shí)現(xiàn)較難。最后,經(jīng)過(guò)反復(fù)思考,看一下程序是否很完善,如果能夠達(dá)到更完善當(dāng)然最好。并非我們最初想到的算法就是最好的算法,所以,有事我們會(huì)而不得不在編寫(xiě)途中終止換用其他算法,但是,我認(rèn)為這不是浪費(fèi)時(shí)間,而是一種認(rèn)識(shí)過(guò)程,在編寫(xiě)程序中遇到的問(wèn)題會(huì)為我們以后編寫(xiě)程序積累經(jīng)驗(yàn),避免再犯同樣的錯(cuò)誤。但是,有的方法不適用于這個(gè)程序,或許會(huì)適用于另外一個(gè)程序。所以,探索的過(guò)程是成長(zhǎng)的過(guò)程,是為成功做的鋪墊。經(jīng)過(guò)努力后獲得成功,會(huì)更有成就感。
            在課程設(shè)計(jì)過(guò)程中通過(guò)獨(dú)立解決問(wèn)題,首先分析設(shè)計(jì)題目中涉及到的數(shù)據(jù)類型,在我們學(xué)習(xí)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中不外乎線性存儲(chǔ)結(jié)構(gòu)及非線性存儲(chǔ)結(jié)構(gòu),非線性存儲(chǔ)結(jié)構(gòu)中有樹(shù)型,集合型,圖型等存儲(chǔ)結(jié)構(gòu),根據(jù)數(shù)據(jù)類型設(shè)計(jì)數(shù)據(jù)結(jié)點(diǎn)類型。然后根據(jù)設(shè)計(jì)題目的主要任務(wù),設(shè)計(jì)出程序大體輪廓(包括子函數(shù)和主函數(shù)),然后對(duì)每個(gè)子函數(shù)進(jìn)行大體設(shè)計(jì),過(guò)程中錯(cuò)誤在所難免,所以要經(jīng)過(guò)仔細(xì)探索,對(duì)每個(gè)函數(shù)進(jìn)行改進(jìn)。
            程序基本完成后,功能雖然齊全,但是程序是否完善(例如,輸入數(shù)據(jù)時(shí)是否在其范圍之內(nèi),所以加入判斷語(yǔ)句是很有必要的)還需運(yùn)行測(cè)試多次,如有發(fā)現(xiàn)應(yīng)該對(duì)其進(jìn)行改善,當(dāng)然要在力所能及的前提下。
            課程設(shè)計(jì)過(guò)程雖然短暫,但是使我深刻理解數(shù)據(jù)結(jié)構(gòu)和算法課程對(duì)編程的重要作用,還有“數(shù)據(jù)結(jié)構(gòu)與算法”還提供了一些常用的基本算法思想及算法的編寫(xiě)程序。通過(guò)獨(dú)立完成設(shè)計(jì)題目,使我系統(tǒng)了解編程的基本步驟,提高分析和解決實(shí)際問(wèn)題的能力。通過(guò)實(shí)踐積累經(jīng)驗(yàn),才能有所創(chuàng)新。正所謂,良好的基礎(chǔ)決定上層建筑。只有基本功做好了,才有可能做出更好的成果。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇十五
            計(jì)算機(jī)技術(shù)已成為現(xiàn)代化發(fā)展的重要支柱和標(biāo)志,并逐步滲透到人類生活的各個(gè)領(lǐng)域。隨著計(jì)算機(jī)硬件的發(fā)展,對(duì)計(jì)算機(jī)軟件的發(fā)展也提出了越來(lái)越高的要求。由于軟件的核心是算法,而算法實(shí)際上是對(duì)加工數(shù)據(jù)過(guò)程的描述,所以研究數(shù)據(jù)結(jié)構(gòu)對(duì)提高編程能力和設(shè)計(jì)高性能的算法是至關(guān)重要的。
            非數(shù)值計(jì)算問(wèn)題的數(shù)學(xué)模型不再是傳統(tǒng)的數(shù)學(xué)方程問(wèn)題,而是諸如表、樹(shù)、圖之類的數(shù)據(jù)結(jié)構(gòu)。因此,簡(jiǎn)單地說(shuō),數(shù)據(jù)結(jié)構(gòu)是一門(mén)研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題的學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和算法。
            一、教學(xué)目的與要求---了解數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);
            教學(xué)要求在每章教學(xué)內(nèi)容給出,大體上為三個(gè)層次:了解、掌握和熟練掌握。他們的含義大致為:了解是正確理解概念,掌握是學(xué)會(huì)所學(xué)知識(shí),熟練掌握就是運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題。
            教學(xué)目的為:了解算法對(duì)于程序設(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ù)語(yǔ),算法描述和分析方法。
            1、鏈表插入、刪除運(yùn)算的算法。算法時(shí)間復(fù)雜度。
            2、后綴表達(dá)式的算法,數(shù)制的換算。
            利用本章的基本知識(shí)設(shè)計(jì)相關(guān)的應(yīng)用問(wèn)題。
            3、循環(huán)隊(duì)列的特點(diǎn)及判斷溢出的條件。
            利用隊(duì)列的特點(diǎn)設(shè)計(jì)相關(guān)的應(yīng)用問(wèn)題。
            4、串的模式匹配運(yùn)算算法。
            5、二叉樹(shù)遍歷算法的設(shè)計(jì)。
            利用二叉樹(shù)遍歷算法,解決簡(jiǎn)單應(yīng)用問(wèn)題哈夫曼樹(shù)的算法。
            6、圖的遍歷。
            最小生成樹(shù)。
            最短路徑。
            7、二叉排序樹(shù)查找。
            平衡樹(shù)二叉樹(shù)。
            8、堆排序。
            快速排序歸并排序。
            四、教學(xué)內(nèi)容、目標(biāo)與學(xué)時(shí)分配。
            教學(xué)內(nèi)容教學(xué)目標(biāo)課時(shí)分配。
            1、緒論。
            邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)。
            算法和算法分析。
            2、線性表。
            線性表的定義與運(yùn)算。
            線性表的順序存儲(chǔ)。
            線性表的鏈?zhǔn)酱鎯?chǔ)。
            3、棧。
            棧的定義與運(yùn)算。
            棧存儲(chǔ)和實(shí)現(xiàn)。
            棧的應(yīng)用舉例。
            4、隊(duì)列。
            隊(duì)列的定義與基本運(yùn)算。
            隊(duì)列的存儲(chǔ)與實(shí)現(xiàn)。
            隊(duì)列的應(yīng)用舉例。
            5、串。
            串的定義與基本運(yùn)算。
            串的表示與實(shí)現(xiàn)。
            串的基本運(yùn)算。
            6、樹(shù)和二叉樹(shù)。
            樹(shù)的定義和術(shù)語(yǔ)。
            二叉樹(shù)樹(shù)的基本概念和術(shù)語(yǔ)遍歷二叉數(shù)和線索二叉樹(shù)。
            二叉樹(shù)的轉(zhuǎn)換。
            二叉樹(shù)的應(yīng)用。
            哈夫曼樹(shù)及其應(yīng)用。
            7、圖。
            圖的定義和術(shù)語(yǔ)。
            圖的存儲(chǔ)結(jié)構(gòu)。
            圖的遍歷算法。
            圖的連通性。
            8、查找。
            查找的基本概念與靜態(tài)查找動(dòng)態(tài)查找。
            哈希表。
            了解。
            了解。
            掌握。
            熟練掌握順序表存儲(chǔ)地址的計(jì)算。
            掌握單鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
            掌握雙鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
            掌握棧的定義與運(yùn)算。
            掌握棧的存儲(chǔ)與實(shí)現(xiàn)。
            熟練掌握棧的各種實(shí)際應(yīng)用。
            掌握隊(duì)列的定義與基本運(yùn)算。
            熟練掌握隊(duì)列的存儲(chǔ)與實(shí)現(xiàn)。
            掌握循環(huán)隊(duì)列的特征和基本運(yùn)算。
            了解串的邏輯結(jié)構(gòu)。
            掌握串的存儲(chǔ)結(jié)構(gòu)。
            熟練掌握串的基本運(yùn)算。
            了解。
            了解二叉樹(shù)。
            熟練掌握二叉樹(shù)定義和存儲(chǔ)結(jié)構(gòu)。
            了解二叉樹(shù)的遍歷算法。
            掌握。
            掌握哈夫曼的建立及編碼。
            了解。
            了解。
            熟練掌握。
            熟練掌握。
            了解。
            熟練掌握。
            了解哈希表與哈希方法。
            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、用指針?lè)绞骄帉?xiě)程序復(fù)習(xí)c(c++)語(yǔ)言指針、結(jié)構(gòu)體等的用法。
            2、對(duì)單鏈表進(jìn)行遍歷。
            鏈表的描述與操作實(shí)現(xiàn)。
            3、棧及其操作。
            描述方法及操作。
            4、編寫(xiě)串子系統(tǒng)1串的特點(diǎn)及順序定長(zhǎng)存儲(chǔ)、操作、查找。
            5、編寫(xiě)串子系統(tǒng)2串的特點(diǎn)及順序定長(zhǎng)存儲(chǔ)、操作、查找。
            6、編寫(xiě)樹(shù)子系統(tǒng)1二叉樹(shù)的特點(diǎn)及存儲(chǔ)方式、創(chuàng)建、顯示、遍歷等。
            7、編寫(xiě)樹(shù)子系統(tǒng)2二叉樹(shù)的特點(diǎn)及存儲(chǔ)方式、創(chuàng)建、顯示、遍歷等。
            8、圖子系統(tǒng)。
            圖的鄰接矩陣的存儲(chǔ)、遍歷、廣度/深度優(yōu)先搜索。
            9、查找子系統(tǒng)。
            理解查找基本算法、平均查找長(zhǎng)度、靜態(tài)、動(dòng)態(tài)查找等。
            五、考試范圍與題型。
            1、考試范圍與分?jǐn)?shù)比例。
            1)緒論。
            12%2)線性表。
            17%3)棧。
            7%4)隊(duì)列。
            6%5)串。
            4%6)樹(shù)和二叉樹(shù)。
            14%7)圖。
            15%8)查找。
            4%9)排序。
            21%。
            2、考試題型與分?jǐn)?shù)比例。
            1)名詞解釋。
            18%2)判斷對(duì)錯(cuò)。
            16%3)填空。
            16%4)單項(xiàng)選擇。
            18%5)應(yīng)用。
            32%。
            六、教材與參考資料。
            1、教材:實(shí)用數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)(譚浩強(qiáng))中國(guó)鐵道出版社。
            2、參考資料:數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏)清華大學(xué)出版社。
            (撰寫(xiě)人:
            審核人: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ī)技術(shù)已成為現(xiàn)代化發(fā)展的重要支柱和標(biāo)志,并逐步滲透到人類生活的各個(gè)領(lǐng)域。隨著計(jì)算機(jī)硬件的發(fā)展,對(duì)計(jì)算機(jī)軟件的發(fā)展也提出了越來(lái)越高的要求。由于軟件的核心是算法,而算法實(shí)際上是對(duì)加工數(shù)據(jù)過(guò)程的描述,所以研究數(shù)據(jù)結(jié)構(gòu)對(duì)提高編程能力和設(shè)計(jì)高性能的算法是至關(guān)重要的。
            非數(shù)值計(jì)算問(wèn)題的數(shù)學(xué)模型不再是傳統(tǒng)的數(shù)學(xué)方程問(wèn)題,而是諸如表、樹(shù)、圖之類的數(shù)據(jù)結(jié)構(gòu)。因此,簡(jiǎn)單地說(shuō),數(shù)據(jù)結(jié)構(gòu)是一門(mén)研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題的學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和算法。
            一、教學(xué)目的與要求---了解數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);
            教學(xué)要求在每章教學(xué)內(nèi)容給出,大體上為三個(gè)層次:了解、掌握和熟練掌握。他們的含義大致為:了解是正確理解概念,掌握是學(xué)會(huì)所學(xué)知識(shí),熟練掌握就是運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題。
            教學(xué)目的為:了解算法對(duì)于程序設(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ù)語(yǔ),算法描述和分析方法。
            1、鏈表插入、刪除運(yùn)算的算法。算法時(shí)間復(fù)雜度。
            2、后綴表達(dá)式的算法,數(shù)制的換算。
            利用本章的基本知識(shí)設(shè)計(jì)相關(guān)的應(yīng)用問(wèn)題。
            3、循環(huán)隊(duì)列的特點(diǎn)及判斷溢出的條件。
            利用隊(duì)列的特點(diǎn)設(shè)計(jì)相關(guān)的應(yīng)用問(wèn)題。
            4、串的模式匹配運(yùn)算算法。
            5、二叉樹(shù)遍歷算法的設(shè)計(jì)。
            利用二叉樹(shù)遍歷算法,解決簡(jiǎn)單應(yīng)用問(wèn)題哈夫曼樹(shù)的算法。
            6、圖的遍歷。
            最小生成樹(shù)。
            最短路徑。
            7、二叉排序樹(shù)查找。
            平衡樹(shù)二叉樹(shù)。
            8、堆排序。
            快速排序歸并排序。
            四、教學(xué)內(nèi)容、目標(biāo)與學(xué)時(shí)分配。
            教學(xué)內(nèi)容教學(xué)目標(biāo)課時(shí)分配。
            1、緒論。
            邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)。
            算法和算法分析。
            2、線性表。
            線性表的定義與運(yùn)算。
            線性表的順序存儲(chǔ)。
            線性表的鏈?zhǔn)酱鎯?chǔ)。
            3、棧。
            棧的定義與運(yùn)算。
            棧存儲(chǔ)和實(shí)現(xiàn)。
            棧的應(yīng)用舉例。
            4、隊(duì)列。
            隊(duì)列的定義與基本運(yùn)算。
            隊(duì)列的存儲(chǔ)與實(shí)現(xiàn)。
            隊(duì)列的應(yīng)用舉例。
            5、串。
            串的定義與基本運(yùn)算。
            串的表示與實(shí)現(xiàn)。
            串的基本運(yùn)算。
            6、樹(shù)和二叉樹(shù)。
            樹(shù)的定義和術(shù)語(yǔ)。
            二叉樹(shù)樹(shù)的基本概念和術(shù)語(yǔ)遍歷二叉數(shù)和線索二叉樹(shù)。
            二叉樹(shù)的轉(zhuǎn)換。
            二叉樹(shù)的應(yīng)用。
            哈夫曼樹(shù)及其應(yīng)用。
            7、圖。
            圖的定義和術(shù)語(yǔ)。
            圖的存儲(chǔ)結(jié)構(gòu)。
            圖的遍歷算法。
            圖的連通性。
            8、查找。
            查找的基本概念與靜態(tài)查找動(dòng)態(tài)查找。
            哈希表。
            了解。
            了解。
            掌握。
            熟練掌握順序表存儲(chǔ)地址的計(jì)算。
            掌握單鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
            掌握雙鏈表的結(jié)構(gòu)特點(diǎn)和基本運(yùn)算。
            掌握棧的定義與運(yùn)算。
            掌握棧的存儲(chǔ)與實(shí)現(xiàn)。
            熟練掌握棧的各種實(shí)際應(yīng)用。
            掌握隊(duì)列的定義與基本運(yùn)算。
            熟練掌握隊(duì)列的存儲(chǔ)與實(shí)現(xiàn)。
            掌握循環(huán)隊(duì)列的特征和基本運(yùn)算。
            了解串的邏輯結(jié)構(gòu)。
            掌握串的存儲(chǔ)結(jié)構(gòu)。
            熟練掌握串的基本運(yùn)算。
            了解。
            了解二叉樹(shù)。
            熟練掌握二叉樹(shù)定義和存儲(chǔ)結(jié)構(gòu)。
            了解二叉樹(shù)的遍歷算法。
            掌握。
            掌握哈夫曼的建立及編碼。
            了解。
            了解。
            熟練掌握。
            熟練掌握。
            了解。
            熟練掌握。
            了解哈希表與哈希方法。
            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、用指針?lè)绞骄帉?xiě)程序復(fù)習(xí)c(c++)語(yǔ)言指針、結(jié)構(gòu)體等的用法。
            2、對(duì)單鏈表進(jìn)行遍歷。
            鏈表的描述與操作實(shí)現(xiàn)。
            3、棧及其操作。
            描述方法及操作。
            4、編寫(xiě)串子系統(tǒng)1串的特點(diǎn)及順序定長(zhǎng)存儲(chǔ)、操作、查找。
            5、編寫(xiě)串子系統(tǒng)2串的特點(diǎn)及順序定長(zhǎng)存儲(chǔ)、操作、查找。
            6、編寫(xiě)樹(shù)子系統(tǒng)1二叉樹(shù)的特點(diǎn)及存儲(chǔ)方式、創(chuàng)建、顯示、遍歷等。
            7、編寫(xiě)樹(shù)子系統(tǒng)2二叉樹(shù)的特點(diǎn)及存儲(chǔ)方式、創(chuàng)建、顯示、遍歷等。
            8、圖子系統(tǒng)。
            圖的鄰接矩陣的存儲(chǔ)、遍歷、廣度/深度優(yōu)先搜索。
            9、查找子系統(tǒng)。
            理解查找基本算法、平均查找長(zhǎng)度、靜態(tài)、動(dòng)態(tài)查找等。
            五、考試范圍與題型。
            1、考試范圍與分?jǐn)?shù)比例。
            1)緒論。
            12%2)線性表。
            17%3)棧。
            7%4)隊(duì)列。
            6%5)串。
            4%6)樹(shù)和二叉樹(shù)。
            14%7)圖。
            15%8)查找。
            4%9)排序。
            21%。
            2、考試題型與分?jǐn)?shù)比例。
            1)名詞解釋。
            18%2)判斷對(duì)錯(cuò)。
            16%3)填空。
            16%4)單項(xiàng)選擇。
            18%5)應(yīng)用。
            32%。
            六、教材與參考資料。
            1、教材:實(shí)用數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)(譚浩強(qiáng))中國(guó)鐵道出版社。
            (撰寫(xiě)人:
            審核人: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)與算法心得篇十七
            通過(guò)兩周的課程設(shè)計(jì),完成了預(yù)定的目標(biāo),其中有很多的隨想。老師的題目發(fā)下來(lái)的很早,大概提前了3周,當(dāng)時(shí)就著手搜索有關(guān)線索二叉樹(shù)的思想,思路,借了一本《數(shù)據(jù)結(jié)構(gòu)-c語(yǔ)言描述》,在大體上就有了一個(gè)輪廓,先是輸入二叉樹(shù),在對(duì)二叉樹(shù)進(jìn)行線索化,依次往下,但在具體實(shí)現(xiàn)時(shí),遇到了很多問(wèn)題:首先是思想的確定,其非常重要,以前有了這個(gè)想法,現(xiàn)在愈加清晰起來(lái),因此,花了大量的時(shí)間在插入刪除的具體操作設(shè)計(jì)上,大概三個(gè)晚上的時(shí)間,對(duì)其中什么不清晰明確之處均加以推敲,效果是顯著的,在上機(jī)上相應(yīng)的節(jié)約了時(shí)間。
            通過(guò)具體的實(shí)驗(yàn)編碼,思路是對(duì)的,但是在小問(wèn)題上摔了一次又一次,大部分時(shí)間都是花在這方面,這個(gè)節(jié)點(diǎn)沒(méi)傳過(guò)來(lái)啊之類的,以后應(yīng)該搞一個(gè)小冊(cè)子,記錄一些錯(cuò)誤的集合,以避免再犯,思想與c語(yǔ)言聯(lián)系起來(lái),才是我們所需要的,即常說(shuō)的理論與實(shí)踐的關(guān)系。
            數(shù)據(jù)結(jié)構(gòu)是基礎(chǔ)的一門(mén)課,對(duì)于有過(guò)編程經(jīng)驗(yàn)的人,結(jié)合自己的編程體會(huì)去悟它的思想;而且我覺(jué)得隨著編程經(jīng)歷的豐富對(duì)它的體會(huì)越深入,最初接觸是對(duì)一些思想可能只是生硬的記憶,隨著學(xué)習(xí)的深入逐漸領(lǐng)悟了很多??戳诉@次課程設(shè)計(jì)的`題目,雖然具體要求沒(méi)有看清,但是總結(jié)一下,可以看出,其需要我們能把一個(gè)具體案例或一件事情反映為程序來(lái)表達(dá),數(shù)據(jù)結(jié)構(gòu)就是橋梁,通過(guò)自己的設(shè)計(jì),使應(yīng)用能力得以融匯,對(duì)與問(wèn)題,具有了初步的分析,繼而解決之的能力,感覺(jué)對(duì)以后的學(xué)習(xí)會(huì)有很大的幫助,學(xué)習(xí)無(wú)非是用于實(shí)踐。
            認(rèn)識(shí)到自己的不足,希望能有進(jìn)一步的發(fā)展。
            數(shù)據(jù)結(jié)構(gòu)與算法心得篇十八
            作為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)過(guò)程中,我深刻地認(rèn)識(shí)到了數(shù)據(jù)結(jié)構(gòu)的重要性。數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)的基礎(chǔ),也是程序員必備的核心知識(shí)。在通過(guò)課堂學(xué)習(xí)和實(shí)踐項(xiàng)目的同時(shí),我逐漸積累了一些關(guān)于數(shù)據(jù)結(jié)構(gòu)的心得體會(huì)。
            首先,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)需要理論與實(shí)踐相結(jié)合。理論知識(shí)是數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的基礎(chǔ),只有理解了各種數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)和應(yīng)用場(chǎng)景,才能更好地使用它們。在學(xué)習(xí)過(guò)程中,我深刻體會(huì)到了課堂知識(shí)和實(shí)際應(yīng)用的融合。通過(guò)書(shū)本中的案例分析和算法推導(dǎo),我對(duì)數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)有了初步的認(rèn)識(shí);而通過(guò)實(shí)踐項(xiàng)目的參與,我更深入地理解了數(shù)據(jù)結(jié)構(gòu)的實(shí)際應(yīng)用。這種理論與實(shí)踐相結(jié)合的學(xué)習(xí)方式,使我在數(shù)據(jù)結(jié)構(gòu)方面取得了較為顯著的進(jìn)步。
            其次,堅(jiān)持動(dòng)手實(shí)踐是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不僅僅是掌握理論知識(shí),更重要的是能夠靈活運(yùn)用所學(xué)的知識(shí)解決實(shí)際問(wèn)題。在我的數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)過(guò)程中,我通過(guò)編寫(xiě)各種算法程序來(lái)鞏固和應(yīng)用所學(xué)的知識(shí)。通過(guò)實(shí)踐項(xiàng)目,我學(xué)會(huì)了如何根據(jù)實(shí)際情況選擇合適的數(shù)據(jù)結(jié)構(gòu),并使用不同的算法來(lái)解決問(wèn)題。在實(shí)踐的過(guò)程中,我也經(jīng)常遇到各種困難和問(wèn)題,但正是通過(guò)一遍又一遍地調(diào)試和優(yōu)化,我得以更好地理解數(shù)據(jù)結(jié)構(gòu)的應(yīng)用原理,提高了編程能力。
            第三,良好的代碼規(guī)范和注釋是保證程序質(zhì)量的關(guān)鍵。在編寫(xiě)數(shù)據(jù)結(jié)構(gòu)的代碼過(guò)程中,我漸漸意識(shí)到了良好的代碼規(guī)范和注釋對(duì)于程序質(zhì)量的重要性。在實(shí)踐項(xiàng)目中,有時(shí)需要多人合作開(kāi)發(fā),良好的代碼規(guī)范可以使團(tuán)隊(duì)成員之間更好地協(xié)同合作。另外,良好的注釋能夠讓自己和他人更加容易理解代碼的功能和實(shí)現(xiàn)思路,提高了代碼的可讀性和可維護(hù)性。因此,在實(shí)踐中,我始終將代碼規(guī)范和注釋作為重要的一環(huán),力求編寫(xiě)出高質(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í)最新的知識(shí),緊跟科技發(fā)展的步伐。除了自習(xí)和實(shí)踐外,我還積極參與各種學(xué)術(shù)討論和博客分享,不斷與其他同學(xué)交流學(xué)習(xí),拓寬自己的思路和知識(shí)面。通過(guò)這樣的不斷學(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í)踐才能真正掌握。通過(guò)我的學(xué)習(xí)經(jīng)歷,我深刻體會(huì)到了數(shù)據(jù)結(jié)構(gòu)的重要性和應(yīng)用價(jià)值。數(shù)據(jù)結(jié)構(gòu)是一門(mén)基礎(chǔ)而又實(shí)用的學(xué)科,它承載著計(jì)算機(jī)科學(xué)的眾多算法和思想,對(duì)于提高編程能力和解決實(shí)際問(wèn)題有著重要的作用。
            綜上所述,數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)需要理論與實(shí)踐相結(jié)合,需要堅(jiān)持動(dòng)手實(shí)踐,需要注重代碼規(guī)范和注釋,需要不斷學(xué)習(xí)和更新。我相信通過(guò)不懈努力和實(shí)踐,我將能夠在數(shù)據(jù)結(jié)構(gòu)這個(gè)領(lǐng)域取得更大的突破和進(jìn)步。數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)并不是終點(diǎn),而是一個(gè)跳板,讓我們能夠更好地應(yīng)對(duì)計(jì)算機(jī)科學(xué)中的各種挑戰(zhàn)和問(wèn)題。