學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)心得體會(huì)_第1頁
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)心得體會(huì)_第2頁
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)心得體會(huì)_第3頁
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)心得體會(huì)_第4頁
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)心得體會(huì)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)心得體會(huì)【篇一:數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)總結(jié)】數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)總結(jié) 通過一學(xué)期對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí),大概的了解了基本的數(shù) 據(jù)結(jié)構(gòu)和相應(yīng)的一些算法。下面總結(jié)一下自己一個(gè)學(xué)期學(xué)習(xí)的收獲 和心得。數(shù)據(jù)結(jié)構(gòu)是什么:數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間 存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選 擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運(yùn)行或者存儲(chǔ)效率。數(shù)據(jù)結(jié)構(gòu)往往同 高效的檢索算法和索引技術(shù)有關(guān)。數(shù)據(jù)結(jié)構(gòu)重要性:般認(rèn)為,一個(gè)數(shù)據(jù)結(jié)構(gòu)是由數(shù)據(jù)元素依據(jù)某種邏輯聯(lián)系組織起來的。對(duì)數(shù)據(jù)元素間邏輯關(guān)系的描述稱為數(shù)據(jù)的邏輯結(jié)構(gòu);數(shù)據(jù)必須 在計(jì)算機(jī)內(nèi)存儲(chǔ),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)形式,是

2、其在 計(jì)算機(jī)內(nèi)的表示;此外討論一個(gè)數(shù)據(jù)結(jié)構(gòu)必須同時(shí)討論在該類數(shù)據(jù) 上執(zhí)行的運(yùn)算才有意義。一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu), 且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率。在許多類型的程序的設(shè)計(jì)中, 數(shù)據(jù)結(jié)構(gòu)的選擇是一個(gè)基本的設(shè)計(jì)考慮因素。許多大型系統(tǒng)的構(gòu)造 經(jīng)驗(yàn)表明,系統(tǒng)實(shí)現(xiàn)的困難程度和系統(tǒng)構(gòu)造的質(zhì)量都嚴(yán)重的依賴于 是否選擇了最優(yōu)的數(shù)據(jù)結(jié)構(gòu)。許多時(shí)候,確定了數(shù)據(jù)結(jié)構(gòu)后,算法 就容易得到了。有些時(shí)候事情也會(huì)反過來,我們根據(jù)特定算法來選 擇數(shù)據(jù)結(jié)構(gòu)與之適應(yīng)。不論哪種情況,選擇合適的數(shù)據(jù)結(jié)構(gòu)都是非 常重要的。選擇了數(shù)據(jù)結(jié)構(gòu),算法也隨之確定,是數(shù)據(jù)而不是算法 是系統(tǒng)構(gòu)造的關(guān)鍵因素。這種洞見導(dǎo)致了許多種軟件設(shè)計(jì)方

3、法和程 序設(shè)計(jì)語言的出現(xiàn),面向?qū)ο蟮某绦蛟O(shè)計(jì)語言就是其中之一。常見的數(shù)據(jù)結(jié)構(gòu):順序表:定義:順序表是在計(jì)算機(jī)內(nèi)存中以數(shù)組的形式保存的線性表,是指用 一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)數(shù)據(jù)元素的線性結(jié)構(gòu)。線性表采 用順序存儲(chǔ)的方式存儲(chǔ)就稱之為順序表。順序表是將表中的結(jié)點(diǎn)依 次存放在計(jì)算機(jī)內(nèi)存中一組地址連續(xù)的存儲(chǔ)單元中。基本運(yùn)算:置表空:sqlsetnull(1)判表滿:sqlempty(1)求表長(zhǎng):sqllength(l)插入:sqlinsert(l,i,x)按序號(hào)取元素: sqlget(l,i)刪除:sqldelete(l,i)按值查找:sqllocate(l,x)鏈表定義:鏈表是一種物理存儲(chǔ)單元

4、上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù) 據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一 系列結(jié)點(diǎn)(鏈表中每一個(gè)元素稱為結(jié)點(diǎn))組成,結(jié)點(diǎn)可以在運(yùn)行時(shí) 動(dòng)態(tài)生成。每個(gè)結(jié)點(diǎn)包括兩個(gè)部分:一個(gè)是存儲(chǔ)數(shù)據(jù)元素的數(shù)據(jù)域, 另一個(gè)是存儲(chǔ)下一個(gè)結(jié)點(diǎn)地址的指針域。相比于線性表順序結(jié)構(gòu), 鏈表比較方便插入和刪除操作。分類:?jiǎn)捂湵硪挥靡唤M地址任意的 存儲(chǔ)單元存放線性表中的數(shù)據(jù)元素。循環(huán)鏈表一循環(huán)鏈表是另一種形式的鏈?zhǔn)酱尜A結(jié)構(gòu)。它的特點(diǎn)是表 中最后一個(gè)結(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn),整個(gè)鏈表形成一個(gè)環(huán)。基本運(yùn)算:建立鏈表,插入節(jié)點(diǎn),刪除節(jié)點(diǎn)。堆棧定義:堆棧都是一種數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu),只能在一端(稱為 棧頂(top)

5、對(duì)數(shù)據(jù)項(xiàng)進(jìn)行插入和刪除。要點(diǎn):堆:順序隨意棧:后進(jìn) 先出(last-in/first-out)?;舅惴ǎ褐每諚#篿nitstack(s)判棧空:stackempty(s)判棧滿:stackfull(s)取棧頂元素:gettop(s) 入棧:push(s)出棧:pop(s)隊(duì)列定義:隊(duì)列是一種特殊的線性表,它只允許在表的前端(front)進(jìn) 行刪除操作,而在表的后端(rear)進(jìn)行插入操作。進(jìn)行插入操作的 端稱為隊(duì)尾,進(jìn)行刪除操作的端稱為隊(duì)頭。隊(duì)列中沒有元素時(shí),稱 為空隊(duì)列。在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將是最先被刪 除的元素;反之最后插入的元素將最后被刪除的元素,因此隊(duì)列又 稱為“先進(jìn)

6、先出”(fifofirst in first out)的線性表。分類:順序隊(duì)列;鏈隊(duì);基本運(yùn)算:初始化隊(duì)列qini 3)入隊(duì)qadd(q,x) 出隊(duì)qdel(q,x)判斷隊(duì)列是否為qempty(q) 判斷隊(duì)列是否為滿qfull(q)特殊矩陣分類:對(duì)陣矩陣;三角矩陣;稀疏矩陣;二叉樹定義:二叉樹是每個(gè)節(jié)點(diǎn)最多有兩個(gè)子樹的有序樹。通常子樹被稱 作“左子樹”(left subtree)和右子樹”(right subtree)o 二叉樹 的每個(gè)結(jié)點(diǎn)至多只有二棵子樹(不存在度大于2的結(jié)點(diǎn)),二叉樹的子 樹有左右之分,次序不能顛倒。二叉樹的第i層至多有2的i -1次方個(gè)結(jié)點(diǎn);深度為k的二叉樹至多有2人(k

7、) -1個(gè)結(jié)點(diǎn);對(duì)任何一棵二 叉樹t,如果其終端結(jié)點(diǎn)數(shù)(即葉子結(jié)點(diǎn)數(shù))為n0,度為2的結(jié)點(diǎn)數(shù)為 n2,則 n0 = n2 + 1。完全二叉樹若設(shè)二叉樹的高度為h,除第h層外,其它各層 (1h-1)的結(jié)點(diǎn)數(shù)都達(dá)到最大個(gè)數(shù),第h層有葉子節(jié)點(diǎn),并且葉子節(jié)點(diǎn)都是從左到右依次排布,這就是完全二叉樹。滿二叉樹除了葉結(jié)點(diǎn)外每一個(gè)結(jié)點(diǎn)都有左右子葉且葉結(jié)點(diǎn)都 處在最底層的二叉樹,。深度二叉樹的層數(shù),就是高度。 性質(zhì): 在二叉樹中,第i層的結(jié)點(diǎn)總數(shù)不超過2人(i-1);=j最(2)深度為h的二叉樹最多有2人h-1個(gè)結(jié)點(diǎn)(h=1),最少有h個(gè)結(jié)點(diǎn);對(duì)于任意一棵二叉樹,如果其葉結(jié)點(diǎn)數(shù)為n0,而度數(shù)為2的結(jié)點(diǎn)總數(shù)為n2

8、,則n0=n2+1 ;具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為int (Iog2n) +1有n個(gè)結(jié)點(diǎn)的完全二叉樹各結(jié)點(diǎn)如果用順序方式存儲(chǔ),則結(jié)點(diǎn)之 間有如下關(guān)系:若i為結(jié)點(diǎn)編號(hào)則如果i1,則其父結(jié)點(diǎn)的編號(hào)為i/2; 如果2*i=n,則其左兒子(即左子樹的根結(jié)點(diǎn))的編號(hào)為2*i;若2*in,則無左兒子;如果2*i+1=n,則其右兒子的結(jié)點(diǎn)編號(hào)為2*i+1 ;若2*i+1n, 則無右兒子。(6)給定n個(gè)節(jié)點(diǎn),能構(gòu)成h(n)種不同的二叉樹。h(n)為卡特蘭數(shù)的 第 n 項(xiàng)。h(n)=c(n,2*n)/(n+1)。(7)設(shè)有i個(gè)枝點(diǎn),i為所有枝點(diǎn)的道路長(zhǎng)度總和,j為葉的道路長(zhǎng) 度總和j=i+2i。二叉樹遍歷:

9、 遍歷是對(duì)樹的一種最基本的運(yùn)算,所謂遍歷二叉樹,就是按一定的 規(guī)則和順序走遍二叉樹的所有結(jié)點(diǎn),使每一個(gè)結(jié)點(diǎn)都被訪問一次, 而且只被訪問一次。由于二叉樹是非線性結(jié)構(gòu),因此,樹的遍歷實(shí) 質(zhì)上是將二叉樹的各個(gè)結(jié)點(diǎn)轉(zhuǎn)換成為一個(gè)線性序列來表示。設(shè)1、d、r分別表示遍歷左子樹、訪問根結(jié)點(diǎn)和遍歷右子樹,則對(duì) 一棵二叉樹的遍歷有三種情況:dlr (稱為先根次序遍歷),1dr (稱 為中根次序遍歷),1rd (稱為后根次序遍歷)。(1)前序遍歷 訪問根;按前序遍歷左子樹;按前序遍歷右子樹(2)中序遍歷按中序遍歷左子樹;訪問根;按中序遍歷右子樹(3)后序遍歷 按后序遍歷左子樹;按后序遍歷右子樹;訪問根(4)層次遍

10、歷即按照層次訪問,通常用隊(duì)列來做。訪問根,訪問 子女,再訪問子女的子女(越往后的層次越低)(兩個(gè)子女的級(jí)別 相同)。散列定義:若結(jié)構(gòu)中存在和關(guān)鍵字k相等的記錄,則必定在f(k)的存儲(chǔ) 位置上。由此,不需比較便可直接取得所查記錄。稱這個(gè)對(duì)應(yīng)關(guān)系f 為散列函數(shù)(hash function),按這個(gè)思想建立的表為散列表。散列函數(shù):直接定址法;除留余數(shù)法;數(shù)字分析法;平方取中法; 折疊法。沖突處理方法:開放地址法(線性探測(cè)再散列,二次探測(cè) 再散列,偽隨機(jī)探測(cè)再散列)鏈地址法。圖定義:一種較線性表和樹更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。存儲(chǔ)結(jié)構(gòu):鄰接矩 陣;鄰接表;逆鄰接表;十字鏈表;鄰接多重表。圖的遍歷: 深度優(yōu)先遍

11、歷:深度優(yōu)先遍歷的思想類似于樹的先序遍歷。其遍歷 過程可以描述為:從圖中某個(gè)頂點(diǎn)v出發(fā),訪問該頂點(diǎn),然后依次 從v的未被訪問的鄰接點(diǎn)出發(fā)繼續(xù)深度優(yōu)先遍歷圖中的其余頂點(diǎn), 直至圖中所有與v有路徑相通的頂點(diǎn)都被訪問完為止。廣度優(yōu)先遍歷:對(duì)圖的廣度優(yōu)先遍歷方法描述為:從圖中某個(gè)頂點(diǎn) v出發(fā),在訪問該頂點(diǎn)v之后,依次訪問v的所有未被訪問過的鄰接 點(diǎn),然后再訪問每個(gè)鄰接點(diǎn)的鄰接點(diǎn),且訪問順序應(yīng)保持先被訪問 的頂點(diǎn)其鄰接點(diǎn)也優(yōu)先被訪問,直到圖中的所有頂點(diǎn)都被訪問為止。 下面是對(duì)一個(gè)無向圖進(jìn)行廣度優(yōu)先遍歷的過程。查找算法順序查找:在一個(gè)已知無(或有序)序隊(duì)列中找出與給定關(guān)鍵字相 同的數(shù)的具體位置。原理是讓關(guān)

12、鍵字與隊(duì)列中的數(shù)從第一個(gè)開始逐 個(gè)比較,直到找出與給定關(guān)鍵字相同的數(shù)為止。折半查找:首先,假設(shè)表中元素是按升序排列,將表中間位置記 錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則 利用中間位置記錄將表分成前、后兩個(gè)子表,如果中間位置記錄的關(guān)鍵字大于 查找關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表。 重復(fù)以上過程,直到找到滿足條件的記錄,使查找成功,或直到子 表不存在為止,此時(shí)查找不成功。分塊查找:先選取各塊中的最大關(guān)鍵字構(gòu)成一個(gè)索引表;查找分 兩個(gè)部分:先對(duì)索引表進(jìn)行二分查找或順序查找,以確定待查記錄在哪一 塊中;然后,在已確定的塊中用順序法進(jìn)行查找。二叉排序樹:定義:二

13、叉排序樹(binary sort tree)又稱二叉查找樹。它或者是 一棵空樹;或者是具有下列性質(zhì)的二叉樹:(1)若左子樹不空,則 左子樹上所有結(jié)點(diǎn)的值均小于它的根結(jié)點(diǎn)的值;(2)若右子樹不空, 則右子樹上所有結(jié)點(diǎn)的值均大于它的根結(jié)點(diǎn)的值;(3)左、右子樹 也分別為二叉排序樹;查找:若根結(jié)點(diǎn)的關(guān)鍵字值等于查找的關(guān)鍵字,成功。否則,若小 于根結(jié)點(diǎn)的關(guān)鍵字值,遞歸查左子樹。若大于根結(jié)點(diǎn)的關(guān)鍵字值, 遞歸查右子樹。若子樹為空,查找不成功。排序算法:直接插入排序:插入排序的基本操作就是將一個(gè)數(shù)據(jù)插入到已經(jīng) 排好序的有序數(shù)據(jù)中,從而得到一個(gè)新的、個(gè)數(shù)加一的有序數(shù)據(jù),算 法適用于少量數(shù)據(jù)的排序,時(shí)間復(fù)雜度

14、為o(n人2)。是穩(wěn)定的排序方 法。插入算法把要排序的數(shù)組分成兩部分:第一部分包含了這個(gè)數(shù) 組的所有元素,但將最后一個(gè)元素除外,而第二部分就只包含這一 個(gè)元素。在第一部分排序后,再把這個(gè)最后元素插入到此刻已是有 序的第一部分里的位置。希爾排序:先取一個(gè)小于n的整數(shù)di作為第一個(gè)增量,把文件 的全部記錄分成di個(gè)組。所有距離為di的倍數(shù)的記錄放在同一個(gè) 組中。先在各組內(nèi)進(jìn)行直接插入排序;然后,取第二個(gè)增量d2d1重 復(fù)上述的分組和排序,直至所取的增量dt=1(dtdt-l?d2d1),即所有 記錄放在同一組中進(jìn)行直接插入排序?yàn)橹?。這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過程可以遞歸進(jìn)行,以 此達(dá)到

15、整個(gè)數(shù)據(jù)變成有序序列。=J最直接選擇排序:第一次從r0rn-1中選取最小值,與r0交換, 第二次從r1rn-1 中選取最小值,與r1交換,第i次從ri- 1rn-1中選取最小值,與ri-1交換.第n-1次從rn-2rn-1中選取最小值,與rn-2交換,總共通過n-1次,得到一個(gè)按排序碼從小 到大排列的有序序列。6.歸并排序:申請(qǐng)空間,使其大小為兩個(gè)已經(jīng)排序序列之和,該空 間用來存放合并后的序列;設(shè)定兩個(gè)指針,最初位置分別為兩個(gè)已 經(jīng)排序序列的起始位置;比較兩個(gè)指針?biāo)赶虻脑?,選擇相對(duì)小 的元素放入到合并空間,并移動(dòng)指針到下一位置;重復(fù)直到某一指 針達(dá)到序列尾;另一序列剩下的所有元素直接復(fù)制到

16、合并序列尾。心得:無論我們學(xué)習(xí)什么課程,概念永遠(yuǎn)是基礎(chǔ),所有的知識(shí)都是 建立在基礎(chǔ)概念之上的。我們要將概念熟記于心,然后構(gòu)建知識(shí)框 架。數(shù)據(jù)結(jié)構(gòu)包括線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。線 性結(jié)構(gòu)包括線性表、棧、隊(duì)列、串、數(shù)組、廣義表等,棧和隊(duì)列是 操作受限的線性表,串的數(shù)據(jù)對(duì)象約束為字符集,數(shù)組和廣義表是 對(duì)線性表的擴(kuò)展:表中的數(shù)據(jù)元素本身也是一個(gè)數(shù)據(jù)結(jié)構(gòu)。除了線 性表以外,棧是重點(diǎn),因?yàn)闂:瓦f歸緊密相連,遞歸是程序設(shè)計(jì)中 很重要的一種工具。樹狀結(jié)構(gòu)中的重點(diǎn)自然是二叉樹和哈弗曼樹了。 對(duì)于二叉樹的很多操作都是基于對(duì)二叉樹的遍歷,掌握了如何遍歷, 很多問題也就迎刃而解了,比如對(duì)二叉樹結(jié)點(diǎn)的查

17、找訪問、統(tǒng)計(jì)二 叉樹中葉子結(jié)點(diǎn)的數(shù)目、求二叉樹的深度等。哈弗曼編碼也有著很 廣泛的應(yīng)用。對(duì)于圖狀結(jié)構(gòu),主要學(xué)習(xí)圖的存儲(chǔ)結(jié)構(gòu)及圖的遍歷。 對(duì)算法的學(xué)習(xí)是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵。要注重對(duì)算法的掌握。對(duì)于 一個(gè)算法,如果我們不是很理解的話,可以手動(dòng)將算法走一遍,| 慢理解該算法的思想。學(xué)習(xí)這門課程的最終目的,還是要學(xué)會(huì)如何 設(shè)計(jì)算法,這需要我們長(zhǎng)期的練習(xí)和思考?!酒簲?shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)心得體會(huì)】程序設(shè)計(jì)心得體會(huì)做了一個(gè)星期的程序設(shè)計(jì)終于做完了,在這次程序設(shè)計(jì)課中,真是 讓我獲益匪淺,我突然發(fā)現(xiàn)寫程序還挺有意思的。由于上學(xué)期的c語言跟這學(xué)期的數(shù)據(jù)結(jié)構(gòu)都算不上真正的懂,對(duì)于 書上的稍微難點(diǎn)的知識(shí)就是是而非的

18、,所以我只是對(duì)老師的程序理 解,我也試著去改變了一些變量,自己也盡量多的去理解老師做程 序的思路。當(dāng)我第一天坐在那里的時(shí)候,我就不知道該做些什么, 后來我只有下來自己看了一遍書來熟悉下以前學(xué)過的知識(shí)。通過這次的程序設(shè)計(jì),發(fā)現(xiàn)一個(gè)程序設(shè)計(jì)就是算法與數(shù)據(jù)結(jié)構(gòu)的結(jié) 合體,自己也開始對(duì)程序產(chǎn)生了前所未有的興趣,以前偷工減料的 學(xué)習(xí)也不可能一下子寫出一個(gè)程序出來,于是我就認(rèn)真看老師寫的 程序,發(fā)現(xiàn)我們看懂了一個(gè)程序其實(shí)不難,難的是對(duì)于一個(gè)程序的 思想的理解,我們要掌握一個(gè)算法,不僅僅限于讀懂,主要的是要 理解老師的思路,學(xué)習(xí)老師的解決問題的方法。這次試驗(yàn)中,我發(fā)現(xiàn)書本上的知識(shí)是一個(gè)基礎(chǔ),但是我基礎(chǔ)都沒掌

19、 握,更別說寫出一個(gè)整整的程序了。自己在寫程序的時(shí)候,也發(fā)現(xiàn) 自己的知識(shí)太少了,特別是基礎(chǔ)知識(shí)很多都是模模糊糊的一個(gè)概念, 沒有落實(shí)到真正的程序,所以自己寫的時(shí)候也感到萬分痛苦,基本 上涉及一個(gè)知識(shí)我就會(huì)去看看書,對(duì)于書本上的知識(shí)沒掌握好。在 飯后閑暇時(shí)間我也總結(jié)了一下,自己以前上課也認(rèn)真的聽了,但是 還是寫不出來,這主要?dú)w結(jié)于自己的練習(xí)太少了,而且也總是半懂 就不管了。在改寫老師的程序中也出現(xiàn)了很多的問題,不斷的修改 就是不斷的學(xué)習(xí)過程,當(dāng)我們?nèi)硇牡耐度肫渲袝r(shí),實(shí)際上是一件 很有樂趣的事情。對(duì)于以后的學(xué)習(xí)有了幾點(diǎn)總結(jié):第一、熟記各種 數(shù)據(jù)結(jié)構(gòu)類型,定義、特點(diǎn)、基本運(yùn)算(分開點(diǎn)一點(diǎn)也沒多少東

20、西, 難度不大,但是基本);第二、各種常用的排序算法,如冒泡排序、 堆排序,這些是必考的內(nèi)容,分?jǐn)?shù)不會(huì)少于20%;第三,多做 習(xí)題,看題型,針對(duì)題型來有選擇復(fù)習(xí);數(shù)據(jù)結(jié)構(gòu)看上去很復(fù)雜, 但你靜下心來把書掃上幾遍,分解各個(gè)知識(shí)點(diǎn),這一下來,學(xué)數(shù)據(jù) 結(jié)構(gòu)的思路就會(huì)很清晰了?!酒簲?shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)心得體會(huì)】這次課程設(shè)計(jì)的心得體會(huì)通過實(shí)習(xí)我的收獲如下1、鞏固和加深了 對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識(shí)的能力。2、培養(yǎng)了我選用參考書,查閱手 冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。3、通過實(shí)際 編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。4、

21、通過課程設(shè) 計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。從剛開始得覺得很難,到最后把這個(gè)做出來,付出了很多,也得到了很多,以前總以為自己對(duì)編程的地方還不行,現(xiàn)在,才發(fā)現(xiàn)只要認(rèn)真做,沒有什么不可能。編程時(shí)要認(rèn)真仔細(xì),出現(xiàn)錯(cuò) 誤要及時(shí)找出并改正,(其中對(duì)英語的要求也體現(xiàn)出來了,因?yàn)樗f明錯(cuò)誤的時(shí)候都是英語)遇到問題要去查相關(guān)的資料。反復(fù) 的調(diào)試程序,最好是多找?guī)讉€(gè)同學(xué)來對(duì)你的程序進(jìn)行調(diào)試并聽其對(duì)你的程序的建議,在他們 不知道程序怎么寫的時(shí)候完全以一個(gè)用戶的身份來用對(duì)你的用戶界面做一些建議,正所謂當(dāng) 局者迷旁觀者清,把各個(gè)注意的問題要想到;同時(shí)要形成自己的編寫程序與調(diào)

22、試程序的風(fēng)格, 從每個(gè)細(xì)節(jié)出發(fā),不放過每個(gè)知識(shí)點(diǎn),注意與理論的聯(lián)系和理論與實(shí)踐的差別。另外,要 注意符號(hào)的使用,注意對(duì)字符處理,特別是對(duì)指針的使用很容易出錯(cuò)且調(diào)試過程是不會(huì)報(bào)錯(cuò) 的,那么我們要始終注意指針的初始化不管它怎么用以免不必要麻煩。通過近兩周的學(xué)習(xí)與 實(shí)踐,體驗(yàn)了一下離開課堂的學(xué)習(xí),也可以理解為一次實(shí)踐與理論的很好的連接。特別是本組所做的題目都是課堂上所講的例子,在 實(shí)行之的過程中并不是那么容易事讓人有一種紙上談兵的體會(huì),正所謂紙上得來終覺淺絕知 此事要躬行。實(shí)訓(xùn)過程中讓我們對(duì)懂得的知識(shí)做了進(jìn)一步深入了解,讓我們的理解與記憶更 深刻,對(duì)不懂的知識(shí)與不清楚的東西也做了一定的了解,也形成了

23、一定的個(gè)人做事風(fēng)格。通 過這次課程設(shè)計(jì),讓我對(duì)一個(gè)程序的數(shù)據(jù)結(jié)構(gòu)有更全面更進(jìn)一步的 認(rèn)識(shí),根據(jù)不同的需求,采用不同的數(shù)據(jù)存儲(chǔ)方式,不一定要用棧,二叉樹等高級(jí)類 型,有時(shí)用基本的一維數(shù)組,只要運(yùn)用得當(dāng),也能達(dá)到相同的效果,甚至更佳,就如這次的 課程設(shè)計(jì),通過用for的多重循環(huán),舍棄多余的循環(huán),提高了程序的運(yùn)行效率。在編寫這個(gè) 程序的過程中,我復(fù)習(xí)了IU之前學(xué)的基本語法,哈弗曼樹最小路徑的求取,哈弗曼編碼及譯碼 的應(yīng)用范圍,程序結(jié)構(gòu)算法等一系列的問題它使我對(duì)數(shù)據(jù)結(jié)構(gòu)改變了看法。在這次設(shè)計(jì)過程 中,體現(xiàn)出自己?jiǎn)为?dú)設(shè)計(jì)模具的能力以及綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己 勞動(dòng)成果的喜悅心情,也從

24、中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。篇二: 數(shù)據(jù)結(jié)構(gòu)試驗(yàn)心得數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)心得體會(huì)(專業(yè):計(jì)算機(jī)科學(xué) 與技術(shù) 姓名:朱文 學(xué)號(hào):2011220137)通訊錄管理系統(tǒng)是基于 雙向循環(huán)鏈表設(shè)計(jì)而成的信息管理系統(tǒng)。該系統(tǒng)通過對(duì)程序進(jìn)行 模塊化,建立添加、顯示、查找和刪除功能的函數(shù),各函數(shù)中運(yùn)用 雙向循環(huán)鏈表存儲(chǔ)數(shù)據(jù)。為存儲(chǔ)通訊錄信息,需定義一個(gè)結(jié)構(gòu)體類型,成員包括姓名、街道、 城市、郵編、國(guó)家等,并建立雙向循環(huán)鏈表,定義該結(jié)構(gòu)體類型的指針,用于指向各結(jié)點(diǎn)。 分別建立具有添加、刪除、修改、查詢等功能的子函數(shù),完成相應(yīng)功能,對(duì)程序?qū)崿F(xiàn)模塊 化。這其中要用到對(duì)鏈表的刪除、插入等知識(shí)。為實(shí)現(xiàn)

25、存儲(chǔ)功能,需用到文件的相關(guān)函數(shù)開 發(fā)一個(gè)通訊錄管理系統(tǒng),借助計(jì)算機(jī)可以方便、快捷、靈活的管理 個(gè)人的朋友及相關(guān)人員的通訊信息,了解友人相關(guān)信息,幫助與友人保持聯(lián)絡(luò)。所以 設(shè)計(jì)一個(gè)通訊錄管理系統(tǒng)管理各人的通訊信息是非常必要的,同時(shí),通過用循環(huán)雙向鏈表設(shè) 計(jì)通訊錄管理系統(tǒng)可以讓我們更好的去理解循環(huán)雙向鏈表,更好的學(xué)好數(shù)據(jù)結(jié)構(gòu)這門課程。本次實(shí)驗(yàn)中,我們使用分工合作的方式,首先定義了函數(shù)的結(jié)構(gòu)體 部分,剩下的根據(jù)函數(shù)所要實(shí)現(xiàn)的功能進(jìn)行分工合作,我實(shí)現(xiàn)的是通訊錄中刪除功能的 子函數(shù),刪除信息(voiddelete(dnode *head)的功能是按照用戶輸入的姓名首先進(jìn)行按姓 名查詢功能,查找成功,則執(zhí)

26、行刪除信息的功能,查詢不成功,則提示錯(cuò)誤信息。定義結(jié)點(diǎn) ?,輸入要?jiǎng)h除的信息的姓名,按姓名查找結(jié)點(diǎn),如果找到匹配的結(jié)點(diǎn)p,就進(jìn)行相關(guān)的刪除 操作,否則就是沒找到要?jiǎng)h除的數(shù)據(jù),最后返回到主函數(shù)。這次實(shí)驗(yàn)中我深刻認(rèn)識(shí)到合作 的重要性。例如:我所編寫的按名刪除功能的實(shí)現(xiàn)中,應(yīng)用了章林霞同學(xué)所編寫寫的按名搜索查詢功能的那部分函數(shù),在這 次實(shí)驗(yàn)中,我學(xué)到很多東西,加強(qiáng)了我的動(dòng)手能力,并且培養(yǎng)了我的獨(dú)立思考能力。我們堅(jiān) 持理論聯(lián)系實(shí)際的思想,以實(shí)踐證實(shí)理論,從實(shí)踐中加深對(duì)理論知識(shí)的理解和掌握。實(shí)驗(yàn)是我們快速認(rèn)識(shí)和掌握理論知識(shí)的一條重要途徑。通過這次課程設(shè)計(jì),我們對(duì)c語言以及數(shù)據(jù)結(jié)構(gòu)有了更深刻的了解,匹1=

27、1增強(qiáng)了程序的編寫能力,鞏固了專業(yè)知識(shí),對(duì)程序的模塊化觀念也又模糊逐漸變的清晰了。在程序的運(yùn)行與調(diào)試過程中出現(xiàn)了很多錯(cuò)誤,通過反復(fù)地復(fù)習(xí)課本上的相關(guān)知識(shí),不停地修改與調(diào)試,我們終于完成了這段程序。在調(diào)試過程中,我們認(rèn)識(shí)到了數(shù)據(jù)結(jié)構(gòu)的靈活性與嚴(yán)謹(jǐn)性,同一個(gè)功能可以由不同的語句來實(shí)現(xiàn),但編寫程序時(shí)要特別注意細(xì)節(jié)方面的問題,因?yàn)橐粋€(gè)小小的疏忽就能導(dǎo)致整個(gè)程序不能運(yùn)行。我們也認(rèn)識(shí)到了自己的薄弱之處,如對(duì)鏈表相關(guān)知識(shí)的欠缺,文件運(yùn)用的不熟練,在以后的學(xué)習(xí)中我們要集中精力、端正態(tài)度, 爭(zhēng)取把知識(shí)學(xué)得更扎實(shí)、 更全面。經(jīng)過這次的實(shí)驗(yàn),我們整體對(duì)各個(gè)方面都得到了不少的提高,希望 以后學(xué)校和系里能夠開設(shè)更多類似

28、的實(shí)驗(yàn),能夠讓我們得到更好的鍛煉。也讓我們深深 感受到討論交流很重要,遇到困難時(shí),大家一起討論,加強(qiáng)我們的團(tuán)隊(duì)合作精神,同時(shí)通過 這次的課程設(shè)計(jì),我們對(duì)數(shù)據(jù)結(jié)構(gòu)中雙向鏈表結(jié)構(gòu)有了更深刻的理 解。篇三:數(shù)據(jù)結(jié)構(gòu)綜合實(shí)驗(yàn)心得體會(huì)心得體會(huì):做了一個(gè)星期的程序設(shè)計(jì)終于做完了,在這次程序設(shè)計(jì)課中,真是 讓我獲益匪淺。對(duì)大一學(xué)習(xí)的c語言和這學(xué)期開的數(shù)據(jù)結(jié)構(gòu),并沒有掌握,很多知識(shí)都 不太懂,突然讓自己獨(dú)立完成一個(gè)程序讓我手忙腳亂,起碼在我認(rèn)為那真的特別難,看了老 師給的題目以及上網(wǎng)查找了一些相關(guān)的知識(shí),簡(jiǎn)單的編了幾行就告一段落了,第一天等于只 完成了老師要求寫的需求分析和概要設(shè)計(jì),后來查找了關(guān)于哈希表的相關(guān)

29、知識(shí),了解了如何 創(chuàng)建哈希表,如何合適的 構(gòu)建哈希函數(shù),(選取合適的表長(zhǎng),合適的余數(shù),使得查找時(shí)間以 及平均查找長(zhǎng)度最短)以及 什么是除留余數(shù)法,和怎樣用除留余數(shù)法創(chuàng)建哈希表,看懂了之后, 我又看了處理沖突的方 法,有三種線性探測(cè)再散列法法,二次探測(cè)再散列法,偽隨機(jī)數(shù)序 列法三種,而我所要做的 是第一種線性探測(cè)再散列的方法,相較后兩種要簡(jiǎn)單很多,在遇到 沖突的時(shí)候地址加一,知 道沖突解決。在了解這些概念以后,我就開始著手編程序了,在遇到問題的時(shí)候 請(qǐng)教我們班擅長(zhǎng)的同 學(xué),慢慢把不能不會(huì)不理解的地方給弄明白了,在經(jīng)過很多次調(diào)試 以后,一些基本功能已經(jīng)可以實(shí)現(xiàn)了,為了使平均查找長(zhǎng)度越小越好,我不斷

30、嘗試新的表長(zhǎng) 以及除數(shù),在沒有出現(xiàn)錯(cuò)誤的基礎(chǔ)上,將功能實(shí)現(xiàn),最后,終于在周四的時(shí)候?qū)⑺械某绦?調(diào)試完全。這次的綜合性實(shí)驗(yàn)使我了解到,平時(shí)對(duì)知識(shí)的積累相當(dāng) 重要,同時(shí)也要注重課上老師的講解,老師在課上的延伸是課本上所沒有的,這些知識(shí)對(duì)于我們對(duì) 程序的編寫有很大的作用,同時(shí),編程也要求我們有足夠的耐心,細(xì)細(xì)推敲。越著急可能就越 無法得到我們想要的結(jié)果,遇到不會(huì)的問題要多多請(qǐng)教,知識(shí)是在實(shí)踐與向別人請(qǐng)教的過程中 積累的,所以問是至關(guān)重要的,只要肯下功夫很多東西都是可以完成的。篇四:數(shù)據(jù)結(jié)構(gòu)實(shí) 驗(yàn)報(bào)告及心得體會(huì)20112012第一學(xué)期數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告班級(jí):信 管一班學(xué)號(hào):201051018姓名:史孟

31、晨 實(shí)驗(yàn)報(bào)告題目及要求一、實(shí)驗(yàn)題目設(shè)某班級(jí)有m(6)名學(xué)生,本學(xué)期共開設(shè)n(3)門課程,要求實(shí) 現(xiàn)并修改如下程序(算法)。輸入學(xué)生的學(xué)號(hào)、姓名和n門課程的成績(jī)(輸入提示和輸出顯示 使用漢字系統(tǒng)),輸出實(shí)驗(yàn)結(jié)果。(15分)計(jì)算每個(gè)學(xué)生本學(xué)期n門課程的總分,輸出總分和n門課程成績(jī) 排在前3名學(xué)生的學(xué)號(hào)、姓名和成績(jī)。按學(xué)生總分和n門課程成績(jī)關(guān)鍵字升序排列名次,總分相同者同 名次。二、實(shí)驗(yàn)要求.修改算法。將奇偶排序算法升序改為降序。(15分).用選擇排序、冒泡排序、插入排序分別替換奇偶排序算法,并將 升序算法修改為降序算法;。(45分).編譯、鏈接以上算法,按要求寫出實(shí)驗(yàn)報(bào)告(25)。修改后算法的所有

32、語句必須加下劃線,沒做修改語句保持按原樣不動(dòng)。5.用a4紙打印輸出實(shí)驗(yàn)報(bào)告。三、實(shí)驗(yàn)報(bào)告說明實(shí)驗(yàn)數(shù)據(jù)可自定義,每種排序算法數(shù)據(jù)要求均不重復(fù)。(1)實(shí)驗(yàn)題目:n門課程學(xué)生成績(jī)名次排序算法實(shí)現(xiàn);實(shí)驗(yàn)?zāi)康模赫莆崭鞣N排序算法的基本思想、實(shí)驗(yàn)方法和驗(yàn)證算法 的準(zhǔn)確性;(3)實(shí)驗(yàn)要求:對(duì)算法進(jìn)行上機(jī)編譯、鏈接、運(yùn)行;(4)實(shí)驗(yàn)環(huán)境(windows xp-sp3,visualC+); (5)實(shí)驗(yàn)算法(給出四種排序算法修改后的全部清單);(6) 實(shí)驗(yàn)結(jié)果(四種排序算法模擬運(yùn)行后的實(shí)驗(yàn)結(jié)果);(7)實(shí)驗(yàn)體會(huì)(文字說明本實(shí) 驗(yàn)成功或不足之處)。三、實(shí)驗(yàn)源程序(算法)score.c#include stdio.h

33、#include string.h #define m 6 #define n 3 struct student char name10; int number; int scoren+1; /*scoren為總分,score0-score2為學(xué)科成績(jī)*/ stum;void changesort(struct student a,int n,int j)int flag=1,i; struct student temp; while(flag) flag=0; for(i=1;in-1;i+=2) /*對(duì)所有奇 數(shù)項(xiàng)進(jìn)行一遍比較 */ if (ai.scorejai+1.scorej) te

34、mp=ai;ai=ai+1; ai+1=temp; flag=1; for(i=0;in-1;i+=2)/* 對(duì)所有偶 數(shù)項(xiàng)進(jìn)行一遍比較 */ if (ai.scorejai+1.scorej)( temp=ai; ai=ai+1; ai+1=temp; flag=1; void print_score(struct student a,int n,int j) int i,k;pr奇f 交換 成績(jī) %d 排序 表,j+1); printf(n); printf(名次學(xué)號(hào) 姓名分 數(shù)n); k=1;for(i=0;knin;i+) if(i0ai.scorej!=ai-1.scorej)k+;

35、printf( %4d ,k); printf(%4d,ai.number);printf( %s,); printf( %6d,ai.scorej);printf(n); main() int i,j,k;for (i=0;im;i+) /*輸入每個(gè)學(xué)生信息*/ printf (請(qǐng)輸入第%d名學(xué) 生分?jǐn)?shù):,i+1);printf(n);printf(姓名:);scanf(%s,); printf(編號(hào):);scanf(%4d,stui.number); printf(數(shù)據(jù)結(jié)構(gòu):); scanf(%4d,stui.score0); print f(離散數(shù)學(xué):); scanf(%4d,stui

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論