最優(yōu)數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)范文(18篇)

字號(hào):

    心得體會(huì)的寫作過程需要我們用文字將內(nèi)心的感受和體驗(yàn)具象化,讓別人更好地理解并從中受益。在撰寫心得體會(huì)時(shí),應(yīng)該注意哪些要點(diǎn)和細(xì)節(jié)?為了幫助大家更好地理解和寫作心得體會(huì),我整理了一些范文供大家參考。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇一
    
     本次課程設(shè)計(jì),使我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門課程有了更深入的理解。《數(shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識(shí)的同時(shí),加強(qiáng)上機(jī)實(shí)踐。
     我的課程設(shè)計(jì)題目是線索二叉樹的運(yùn)算。剛開始做這個(gè)程序的時(shí)候,感到完全無從下手,甚至讓我覺得完成這次程序設(shè)計(jì)根本就是不可能的,于是開始查閱各種資料以及參考文獻(xiàn),之后便開始著手寫程序,寫完運(yùn)行時(shí)有很多問題。特別是實(shí)現(xiàn)線索二叉樹的刪除運(yùn)算時(shí)很多情況沒有考慮周全,經(jīng)常運(yùn)行出現(xiàn)錯(cuò)誤,但通過同學(xué)間的幫助最終基本解決問題。
     在本課程設(shè)計(jì)中,我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。并對(duì)vc有了更深入的了解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對(duì)學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對(duì)學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(xùn)練。此外,還有更重要的一點(diǎn)是:機(jī)器是比任何教師更嚴(yán)厲的檢查者。因此,在“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)過程中,必須嚴(yán)格按照老師的要求,主動(dòng)地、積極地、認(rèn)真地做好每一個(gè)實(shí)驗(yàn),以不斷提高自己的編程能力與專業(yè)素質(zhì)。
     通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識(shí)到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時(shí)間上機(jī)練習(xí)。這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動(dòng)手能力,使我掌握了程序設(shè)計(jì)的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。
     總的來說,這次課程設(shè)計(jì)讓我獲益匪淺,對(duì)數(shù)據(jù)結(jié)構(gòu)也有了進(jìn)一步的理解和認(rèn)識(shí)。
     這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,雖然上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識(shí)。上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識(shí)。數(shù)據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,但我覺得我們一低計(jì)算機(jī)里一門基礎(chǔ)課程定要把基礎(chǔ)學(xué)扎實(shí),定要把基礎(chǔ)學(xué)扎實(shí),然而這次短短的上機(jī)幫我又重新鞏固了c語言知識(shí),讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門語言知識(shí)讓我的水平又一部的.提高。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(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、通過課程設(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)試程序的風(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í)與不清楚的東西也做了一定的了解,也形成了一定的個(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í)了之前學(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)成果的喜悅心情,也從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇三
    “數(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ù)及編寫程序的能力,使學(xué)生能夠根據(jù)問題要求和數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)組織的方法,把現(xiàn)實(shí)世界中的實(shí)際問題在計(jì)算機(jī)內(nèi)部表示出來并用軟件解決問題,培養(yǎng)良好的程序設(shè)計(jì)技能。
    當(dāng)初拿到這次課程設(shè)計(jì)題目時(shí),似乎無從下手,但是經(jīng)過分析可知,對(duì)于簡(jiǎn)單文本編輯器來說功能有限,不外乎創(chuàng)作文本、顯示文本、統(tǒng)計(jì)文本中字母—數(shù)字—空格—特殊字符—文本總字?jǐn)?shù)、查找、刪除及插入這幾項(xiàng)功能。于是,我進(jìn)行分模塊進(jìn)行編寫程序。雖然每個(gè)模塊程序并不大,但是每個(gè)模塊都要經(jīng)過一番思考才能搞清其算法思想,只要有了算法思想,再加上c程序語言基礎(chǔ),基本完成功能,但是,每個(gè)模塊不可能一次完成而沒有一點(diǎn)錯(cuò)誤,所以,我給自己定了一個(gè)初級(jí)目標(biāo):用c語言大體描述每個(gè)算法,然后經(jīng)調(diào)試后改掉其中明顯的錯(cuò)誤,并且根據(jù)調(diào)試結(jié)果改正一些算法錯(cuò)誤,當(dāng)然,這一目標(biāo)實(shí)現(xiàn)較難。最后,經(jīng)過反復(fù)思考,看一下程序是否很完善,如果能夠達(dá)到更完善當(dāng)然最好。并非我們最初想到的算法就是最好的算法,所以,有事我們會(huì)而不得不在編寫途中終止換用其他算法,但是,我認(rèn)為這不是浪費(fèi)時(shí)間,而是一種認(rèn)識(shí)過程,在編寫程序中遇到的問題會(huì)為我們以后編寫程序積累經(jīng)驗(yàn),避免再犯同樣的錯(cuò)誤。但是,有的方法不適用于這個(gè)程序,或許會(huì)適用于另外一個(gè)程序。所以,探索的過程是成長的過程,是為成功做的鋪墊。經(jīng)過努力后獲得成功,會(huì)更有成就感。
    在課程設(shè)計(jì)過程中通過獨(dú)立解決問題,首先分析設(shè)計(jì)題目中涉及到的數(shù)據(jù)類型,在我們學(xué)習(xí)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中不外乎線性存儲(chǔ)結(jié)構(gòu)及非線性存儲(chǔ)結(jié)構(gòu),非線性存儲(chǔ)結(jié)構(gòu)中有樹型,集合型,圖型等存儲(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ì),過程中錯(cuò)誤在所難免,所以要經(jīng)過仔細(xì)探索,對(duì)每個(gè)函數(shù)進(jìn)行改進(jìn)。
    程序基本完成后,功能雖然齊全,但是程序是否完善(例如,輸入數(shù)據(jù)時(shí)是否在其范圍之內(nèi),所以加入判斷語句是很有必要的)還需運(yùn)行測(cè)試多次,如有發(fā)現(xiàn)應(yīng)該對(duì)其進(jìn)行改善,當(dāng)然要在力所能及的前提下。
    課程設(shè)計(jì)過程雖然短暫,但是使我深刻理解數(shù)據(jù)結(jié)構(gòu)和算法課程對(duì)編程的重要作用,還有“數(shù)據(jù)結(jié)構(gòu)與算法”還提供了一些常用的基本算法思想及算法的編寫程序。通過獨(dú)立完成設(shè)計(jì)題目,使我系統(tǒng)了解編程的基本步驟,提高分析和解決實(shí)際問題的能力。通過實(shí)踐積累經(jīng)驗(yàn),才能有所創(chuàng)新。正所謂,良好的基礎(chǔ)決定上層建筑。只有基本功做好了,才有可能做出更好的成果。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇四
    陳康蔭080401200708級(jí)計(jì)科系計(jì)本(2)班
    完成了這次的二元多項(xiàng)式加減運(yùn)算問題的課程設(shè)計(jì)后,我的心得體會(huì)很多,細(xì)細(xì)梳理一下,有以下幾點(diǎn):
    1、程序的編寫中的語法錯(cuò)誤及修改
    因?yàn)槲以诮鉀Q二元多項(xiàng)式問題中,使用了鏈表的方式建立的二元多項(xiàng)式,所以程序的空間是動(dòng)態(tài)的生成的,而且鏈表可以靈活地添加或刪除結(jié)點(diǎn),所以使得程序得到簡(jiǎn)化。但是出現(xiàn)的語法問題主要在于子函數(shù)和變量的定義,降序排序,關(guān)鍵字和函數(shù)名稱的書寫,以及一些庫函數(shù)的規(guī)范使用,這些問題均可以根據(jù)編譯器的警告提示,對(duì)應(yīng)的將其解決。
    2、程序的設(shè)計(jì)中的邏輯問題及其調(diào)整
    我在設(shè)計(jì)程序的過程中遇到許多問題,首先在選擇數(shù)據(jù)結(jié)構(gòu)的時(shí)候選擇了鏈表,但是鏈表的排序比較困難,特別是在多關(guān)鍵字的情況下,在一種關(guān)鍵字確定了順序以后,在第一關(guān)鍵字相同的時(shí)候,按某種順序?qū)Φ诙P(guān)鍵字進(jìn)行排序。在此程序中共涉及到3個(gè)量數(shù),即:系數(shù),x的指數(shù)和y的指數(shù),而關(guān)鍵字排是按x的指數(shù)和y的指數(shù)來看,由于要求是降冪排序且含有2個(gè)關(guān)鍵字,所以我先選擇x的指數(shù)作為第一關(guān)鍵字,先按x的降序來排序,當(dāng)x的指數(shù)相同時(shí),再以y為關(guān)鍵字,按照y的指數(shù)大小來進(jìn)行降序排列。
    另外,我在加法函數(shù)的編寫過程中也遇到了大量的問題,由于要同時(shí)比較多個(gè)關(guān)鍵字,而且設(shè)計(jì)中涉及了數(shù)組和鏈表的綜合運(yùn)用,導(dǎo)致反復(fù)修改了很長的時(shí)間才完成了一個(gè)加法的設(shè)計(jì)。但是,現(xiàn)在仍然有一個(gè)問題存在:若以0為系數(shù)的項(xiàng)是首項(xiàng)則顯示含有此項(xiàng),但是運(yùn)算后則自動(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í)候由于考慮不夠充分就直接編寫程序,走了很多彎路,不得不停下來仔細(xì)研究算法,后來發(fā)現(xiàn)由于前邊的加法函數(shù)完全適用于減法,只不過是將二元多項(xiàng)式b的所有項(xiàng)取負(fù)再用加法函數(shù)即可,可見算法的重要性不低于程序本身。
    3、程序的調(diào)試中的經(jīng)驗(yàn)及體會(huì)
    我在調(diào)試過程中,發(fā)生了許多小細(xì)節(jié)上的問題,它們提醒了自己在以后編程的時(shí)候要注意細(xì)節(jié),即使是一個(gè)括號(hào)的遺漏或者一個(gè)字符的誤寫都會(huì)造成大量的錯(cuò)誤,浪費(fèi)許多時(shí)間去尋找并修改,總結(jié)的教訓(xùn)就是寫程序的時(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)與算法設(shè)計(jì)心得體會(huì)篇五
    《數(shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識(shí)的同時(shí),加強(qiáng)上機(jī)實(shí)踐。
    接下來就跟本站小編一起去了解一下關(guān)于數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
    心得體會(huì)
    吧!
    決問題和在老師的幫助下一步一步慢慢的正確運(yùn)行程序, 決問題和在老師的幫助下一步一步慢慢的正確運(yùn)行程序,終 于完成了這次課程設(shè)計(jì), 于完成了這次課程設(shè)計(jì),雖然這次課程設(shè)計(jì)結(jié)束了但是總覺 得自已懂得的知識(shí)很是不足,學(xué)無止境, 得自已懂得的知識(shí)很是不足,學(xué)無止境,以后還會(huì)更加的努 力深入的學(xué)習(xí)。 力深入的學(xué)習(xí)。
    本次課程設(shè)計(jì),使我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門課程有了更深入的理解。我的課程設(shè)計(jì)題目是線索二叉樹的運(yùn)算。剛開始做這個(gè)程序的時(shí)候,感到完全無從下手,甚至讓我覺得完成這次程序設(shè)計(jì)根本就是不可能的,于是開始查閱各種資料以及參考文獻(xiàn),之后便開始著手寫程序,寫完運(yùn)行時(shí)有很多問題。特別是實(shí)現(xiàn)線索二叉樹的刪除運(yùn)算時(shí)很多情況沒有考慮周全,經(jīng)常運(yùn)行出現(xiàn)錯(cuò)誤,但通過同學(xué)間的幫助最終基本解決問題。
    在本課程設(shè)計(jì)中,我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。并對(duì)vc有了更深入的了解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對(duì)學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對(duì)學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(xùn)練。此外,還有更重要的一點(diǎn)是:機(jī)器是比任何教師更嚴(yán)厲的檢查者。因此,在“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)過程中,必須嚴(yán)格按照老師的要求,主動(dòng)地、積極地、認(rèn)真地做好每一個(gè)實(shí)驗(yàn),以不斷提高自己的編程能力與專業(yè)素質(zhì)。
    通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識(shí)到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時(shí)間上機(jī)練習(xí)。這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動(dòng)手能力,使我掌握了程序設(shè)計(jì)的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。
    總的來說,這次課程設(shè)計(jì)讓我獲益匪淺,對(duì)數(shù)據(jù)結(jié)構(gòu)也有了進(jìn)一步的理解和認(rèn)識(shí)。
    通過本次課程設(shè)計(jì),對(duì)圖的概念有了一個(gè)新的認(rèn)識(shí),在學(xué)習(xí)離散數(shù)學(xué)的時(shí)候,總覺得圖是很抽象的東西,但是在學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程之后,我慢慢地體會(huì)到了其中的奧妙,圖能夠在計(jì)算機(jī)中存在,首先要捕捉他有哪些具體化、數(shù)字化的信息,比如說權(quán)值、頂點(diǎn)個(gè)數(shù)等,這也就說明了想要把生活中的信息轉(zhuǎn)化到計(jì)算機(jī)中必須用數(shù)字來完整的構(gòu)成一個(gè)信息庫,而圖的存在,又涉及到了頂點(diǎn)之間的聯(lián)系。圖分為有向圖和無向圖,而無向圖又是有向圖在權(quán)值雙向相等下的一種特例,如何能在計(jì)算機(jī)中表示一個(gè)雙向權(quán)值不同的圖,這就是一件很巧妙的事情,經(jīng)過了思考和老師同學(xué)的幫助,我用 edges[i][j]=up 和 edges[j][i]=up 就能實(shí)現(xiàn)了一個(gè)雙向圖信息的存儲(chǔ)。對(duì)整個(gè)程序而言,dijkstra 算法始終都是核心內(nèi)容,其實(shí)這個(gè)算法在實(shí)際思考中并不難,也許我們誰都知道找一個(gè)路徑最短的方法,及從頂點(diǎn)一步一步找最近的路線并與其直接距離相比較,但是,在計(jì)算機(jī)中實(shí)現(xiàn)這么一個(gè)很簡(jiǎn)單的想法就需要涉及到很多專業(yè)知識(shí),為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c 語言為主,所以浪費(fèi)了很多時(shí)間,比如說在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見在調(diào)用知識(shí)點(diǎn),我沒有掌握好。不過,有了這次課程設(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ì)的題目是求最短路徑,本來是想通過算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬聿患安檎腋鞯氐男畔?,所以,這個(gè)計(jì)劃就沒有實(shí)現(xiàn),我相信在以后有更長時(shí)間的情況下,我會(huì)做出來的。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇六
    專業(yè)知識(shí),為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c語言為主,所以浪費(fèi)了很多時(shí)間,比如說在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見在調(diào)用知識(shí)點(diǎn),我沒有掌握好。
    不過,有了這次課程設(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ì)的題目是求最短路徑,本來是想通過算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬聿患安檎腋鞯氐男畔ⅲ?,這個(gè)計(jì)劃就沒有實(shí)現(xiàn),我相信在以后有更長時(shí)間的情況下,我會(huì)做出來的。
    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、通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。
    根據(jù)我在實(shí)習(xí)中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點(diǎn):
    1、認(rèn)真上好專業(yè)實(shí)驗(yàn)課,多在實(shí)踐中鍛煉自己。2、寫程序的過程中要考慮周到,嚴(yán)密。
    3、在做設(shè)計(jì)的時(shí)候要有信心,有耐心,切勿浮躁。4、認(rèn)真的學(xué)習(xí)課本知識(shí),掌握課本中的知識(shí)點(diǎn),并在此基礎(chǔ)上學(xué)會(huì)靈活運(yùn)用。
    5、在課余時(shí)間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯(cuò)誤,以便能節(jié)省調(diào)試程序的時(shí)間。
    這是一門純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。在學(xué)習(xí)科目的第一節(jié)課起,李老師就為我們闡述了它的重要性。它對(duì)我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。
    己找出錯(cuò)誤,并加以改正。
    tc里檢查錯(cuò)誤都是用英文來顯示出來的,經(jīng)過了這次課程設(shè)計(jì),現(xiàn)在已經(jīng)可以了解很多錯(cuò)誤在英文里的提示,這對(duì)我來說是一個(gè)突破性的進(jìn)步,眼看著一個(gè)個(gè)錯(cuò)誤通過自己的努力在我眼前消失,覺得很是開心。此次的程序設(shè)計(jì)能夠成功,是我和我的同學(xué)三個(gè)人共同努力作用的結(jié)果。在這一段努力學(xué)習(xí)的過程中,我們的編程設(shè)計(jì)有了明顯的提高。
    其實(shí)現(xiàn)在想起來,收獲還真是不少,雖然說以前非常不懂這門語言,在它上面花費(fèi)了好多心血,覺得它很難,是需用花費(fèi)了大量的時(shí)間編寫出來的?,F(xiàn)在真正的明白了一些代碼的應(yīng)用,每個(gè)程序都有一些共同點(diǎn),通用的結(jié)構(gòu),相似的格式。只要努力去學(xué)習(xí),就會(huì)靈活的去應(yīng)用它。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇七
    本次課程設(shè)計(jì)所用到的知識(shí)完全是上學(xué)期的知識(shí),通過這次課程設(shè)計(jì),我認(rèn)識(shí)到了我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課的掌握程度。
    首先我這個(gè)課程設(shè)計(jì)是關(guān)于二叉樹的,由于是剛接觸二叉樹,所以我掌握的長度并不深。在編程之前我把有關(guān)于二叉樹的知識(shí)有溫習(xí)了一遍,還好并沒有忘掉。二叉樹這章節(jié)難度中上等,而且內(nèi)容廣泛,所以我只掌握了百分之六七十。
    然后,在編程中我認(rèn)識(shí)到了自己動(dòng)手能力的不足,雖然相比較大二而言進(jìn)步很大,但是我還是不滿意,有的在編程中必須看書才能寫出來,有的靠百度,很少是自己寫的。還好,我自己組裝程序的能力還行,要不這東拼西湊的程序根本組裝不了。在編程中我還認(rèn)識(shí)到了,編程不能停下,如果編程的時(shí)間少了,知識(shí)忘的會(huì)很快,而且動(dòng)手也會(huì)很慢。同時(shí),同學(xué)之間的合作也很重要,每個(gè)人掌握的知識(shí)都不一樣,而且掌握程度也不一樣,你不會(huì)的別的同學(xué)會(huì),所以在大家的共同努力下,編程會(huì)變得很容易。在這次編程中,我了解到了自己某些方面的不足,比如說鏈表的知識(shí),雖然我能做一些有關(guān)于鏈表的編程,但是很慢,沒有別人編程的快,另外,二叉樹和圖的知識(shí)最不好掌握,這方面的知識(shí)廣泛而復(fù)雜。以前,沒動(dòng)手編程的時(shí)候覺得這些知識(shí)很容易,現(xiàn)在編程了才發(fā)現(xiàn)自己錯(cuò)了,大錯(cuò)特錯(cuò)了,我們這個(gè)專業(yè)最重視的就是動(dòng)手編程能力,如果我們紙上寫作能力很強(qiáng)而動(dòng)手編程能力很差,那我們就白上這個(gè)專業(yè)了。計(jì)算機(jī)這個(gè)專業(yè)就是鍛煉動(dòng)手編程能力的,一個(gè)人的理論知識(shí)再好,沒有動(dòng)手編程能力,那他只是一個(gè)計(jì)算機(jī)專業(yè)的“入門者”。在編程中我們能找到滿足,如果我們自己編程了一個(gè)程序,我們會(huì)感到自豪,而且充實(shí),因?yàn)槿绻覀儗Q幸粋€(gè)難得程序,我們會(huì)達(dá)到忘我的境界,自己完全沉浸在編程的那種樂趣之中,完全會(huì)廢寢忘食。編程雖然會(huì)乏味很無聊,但是只要我們沉浸其中,你就會(huì)發(fā)現(xiàn)里面的樂趣,遇到難得,你會(huì)勇往直前,不寫出來永不罷休;遇到容易的,你會(huì)找到樂趣。編程是很乏味,但是那是因?yàn)槟銢]找到編程重的樂趣,你只看到了他的不好,而沒有看到他的好。其實(shí),只要你找到編程中得樂趣,你就會(huì)完全喜歡上他,不編程還好,一編程你就會(huì)變成一個(gè)兩耳不聞窗外事的“植物人”。可以說只要你涉及到了計(jì)算機(jī),你就的會(huì)編程,而且還要喜歡上他,永遠(yuǎn)和他打交道,我相信在某一天,我們一定會(huì)把他當(dāng)作我們不可或缺的好朋友。
    最后我要談的是長時(shí)間編程的好處,俗話說“熟能生巧”,確實(shí)是這樣。如果我們長時(shí)間不編程,在一接觸他,我們會(huì)感到很陌生。有規(guī)律的編程會(huì)提高我們的動(dòng)手能力,我們的思維,也會(huì)讓我們變得很細(xì)心。在一個(gè)幾千行的程序中,我們都能找到錯(cuò)誤,那我們還會(huì)怕其他的錯(cuò)誤嗎?可以說編程是我們?cè)谖覀冞@一行業(yè)的一把利劍,如果我們能很好的利用它,我們就會(huì)成為這個(gè)行業(yè)的真正成功者。也許你會(huì)說就算變成好了也不一定成功,是的,但是你不會(huì)編程就一定不會(huì)成功。如果,我們想成為這個(gè)專業(yè)的成功者,我們就得愛上編程,不管他是怎么得乏味,怎么得無聊,我們都不能丟掉他。
    總之,動(dòng)手編程就是鍛煉我們的動(dòng)手能力,當(dāng)然這個(gè)動(dòng)手能力并不是科研上的動(dòng)手能力,而是我們的動(dòng)手編程能力,記住,只要你真正的喜歡上他,你就會(huì)發(fā)現(xiàn)其中的樂趣,我相信,只要你堅(jiān)持下去,你一定會(huì)喜歡上他,把編程當(dāng)作自己日常生活中一件必須做的事情。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇八
    通過本次課程設(shè)計(jì),對(duì)圖的概念有了一個(gè)新的認(rèn)識(shí),在學(xué)習(xí)離散數(shù)學(xué)的時(shí)候,總覺得圖是很抽象的東西,但是在學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程之后,我慢慢地體會(huì)到了其中的`奧妙,圖能夠在計(jì)算機(jī)中存在,首先要捕捉他有哪些具體化、數(shù)字化的信息,比如說權(quán)值、頂點(diǎn)個(gè)數(shù)等,這也就說明了想要把生活中的信息轉(zhuǎn)化到計(jì)算機(jī)中必須用數(shù)字來完整的構(gòu)成一個(gè)信息庫,而圖的存在,又涉及到了頂點(diǎn)之間的聯(lián)系。圖分為有向圖和無向圖,而無向圖又是有向圖在權(quán)值雙向相等下的一種特例,如何能在計(jì)算機(jī)中表示一個(gè)雙向權(quán)值不同的圖,這就是一件很巧妙的事情,經(jīng)過了思考和老師同學(xué)的幫助,我用edges[i][j]=up和edges[j][i]=up就能實(shí)現(xiàn)了一個(gè)雙向圖信息的存儲(chǔ)。
    對(duì)整個(gè)程序而言,dijkstra算法始終都是核心內(nèi)容,其實(shí)這個(gè)算法在實(shí)際思考中并不難,也許我們誰都知道找一個(gè)路徑最短的方法,及從頂點(diǎn)一步一步找最近的路線并與其直接距離相比較,但是,在計(jì)算機(jī)中實(shí)現(xiàn)這么一個(gè)很簡(jiǎn)單的想法就需要涉及到很多專業(yè)知識(shí),為了完成設(shè)計(jì),在前期工作中,基本都是以學(xué)習(xí)c語言為主,所以浪費(fèi)了很多時(shí)間,比如說在程序中,刪除頂點(diǎn)和增加頂點(diǎn)的模塊中都有和建圖模塊相互重復(fù)的函數(shù),但是由于技術(shù)的原因,只能做一些很累贅的函數(shù),可見在調(diào)用知識(shí)點(diǎn),我沒有掌握好。
    不過,有了這次課程設(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ì)的題目是求最短路徑,本來是想通過算法的實(shí)現(xiàn)把這個(gè)程序與交通情況相連,但是因?yàn)閬聿患安檎腋鞯氐男畔?,所以,這個(gè)計(jì)劃就沒有實(shí)現(xiàn),我相信在以后有更長時(shí)間的情況下,我會(huì)做出來的。
    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、通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。
    根據(jù)我在實(shí)習(xí)中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點(diǎn):
    1、認(rèn)真上好專業(yè)實(shí)驗(yàn)課,多在實(shí)踐中鍛煉自己。
    2、寫程序的過程中要考慮周到,嚴(yán)密。
    3、在做設(shè)計(jì)的時(shí)候要有信心,有耐心,切勿浮躁。
    4、認(rèn)真的學(xué)習(xí)課本知識(shí),掌握課本中的知識(shí)點(diǎn),并在此基礎(chǔ)上學(xué)會(huì)靈活運(yùn)用。
    5、在課余時(shí)間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯(cuò)誤,以便能節(jié)省調(diào)試程序的時(shí)間。
    這是一門純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。在學(xué)習(xí)科目的第一節(jié)課起,李老師就為我們闡述了它的重要性。它對(duì)我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。
    剛開始學(xué)的時(shí)候確實(shí)有很多地方我很不理解,每次上課時(shí)老師都會(huì)給我們出不同的設(shè)計(jì)題目,對(duì)于我們一個(gè)初學(xué)者來說,無疑是一個(gè)具大的挑戰(zhàn),撞了幾次壁之后,我決定靜下心來,仔細(xì)去寫程序。老師會(huì)給我們需要編程的內(nèi)容一些講解,順著老師的思路,來完成自己的設(shè)計(jì),我們可以開始運(yùn)行自己的程序,可是好多處的錯(cuò)誤讓人看的可怕,還看不出到底是哪里出現(xiàn)了錯(cuò)誤,但是程序還是得繼續(xù)下去,我多次請(qǐng)教了老師和同學(xué),逐漸能自己找出錯(cuò)誤,并加以改正。
    tc里檢查錯(cuò)誤都是用英文來顯示出來的,經(jīng)過了這次課程設(shè)計(jì),現(xiàn)在已經(jīng)可以了解很多錯(cuò)誤在英文里的提示,這對(duì)我來說是一個(gè)突破性的進(jìn)步,眼看著一個(gè)個(gè)錯(cuò)誤通過自己的努力在我眼前消失,覺得很是開心。此次的程序設(shè)計(jì)能夠成功,是我和我的同學(xué)三個(gè)人共同努力作用的結(jié)果。在這一段努力學(xué)習(xí)的過程中,我們的編程設(shè)計(jì)有了明顯的提高。
    其實(shí)現(xiàn)在想起來,收獲還真是不少,雖然說以前非常不懂這門語言,在它上面花費(fèi)了好多心血,覺得它很難,是需用花費(fèi)了大量的時(shí)間編寫出來的?,F(xiàn)在真正的明白了一些代碼的應(yīng)用,每個(gè)程序都有一些共同點(diǎn),通用的結(jié)構(gòu),相似的格式。只要努力去學(xué)習(xí),就會(huì)靈活的去應(yīng)用它。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇九
    在兩周的學(xué)習(xí)和實(shí)踐過程中,通過解決學(xué)生搭配問題這一實(shí)際問題,讓我對(duì)循環(huán)隊(duì)列有了更深的了解,對(duì)數(shù)據(jù)結(jié)構(gòu)也產(chǎn)生了更加濃厚的興趣,同時(shí)也是對(duì)我解決實(shí)際問題能力的一次提升。
    記得王教授給我們上課時(shí)就要不斷的通過走算法的方式,掌握所學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)、算法等,而上機(jī)則能進(jìn)一步鞏固自己所學(xué)的知識(shí)、提高自己的學(xué)習(xí)能力。在上機(jī)的同時(shí)也改正了自己對(duì)某些算法的錯(cuò)誤使用,使自己能在通過程序解決問題時(shí)抓住關(guān)鍵算法,能夠很好的夠造出解決問題的數(shù)據(jù)結(jié)構(gòu)、算法的設(shè)計(jì)思想和流程圖,并用c語言描繪出關(guān)鍵算法。
    首先對(duì)于這次的課程設(shè)計(jì)題目而言,主要是對(duì)隊(duì)列這一知識(shí)點(diǎn)的運(yùn)用。首先是對(duì)問題的分析,明白題目的具體要求,即將現(xiàn)實(shí)生活中的舞會(huì)搭配問題,用鏈隊(duì)列這一數(shù)據(jù)結(jié)構(gòu)描繪出來。用兩個(gè)鏈隊(duì)列boy和girl分別代表男生和女生,當(dāng)播放每一首歌曲時(shí),便可使兩隊(duì)各有一元素出隊(duì)列,這樣就可以模擬出搭配情況。同時(shí),由于題目要求系統(tǒng)能模擬動(dòng)態(tài)地顯示出上述過程,所以就考慮調(diào)用一個(gè)延遲函數(shù)sleep(),使歌曲之間有一段時(shí)間間隔,即模擬了顯示中的那一動(dòng)態(tài)過程。其次便是在實(shí)現(xiàn)過程中遇到的具體細(xì)節(jié)問題,比如一開始設(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)過分析發(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ì)尾的功能。這樣不僅沒有了之前的問題,而且使程序更加易懂。在這些細(xì)節(jié)方面的具體設(shè)計(jì),是對(duì)個(gè)人分析問題、解決問題能力的一個(gè)很好的鍛煉。通過這個(gè)過程的鍛煉,不僅能對(duì)所學(xué)的知識(shí)點(diǎn)有很好的掌握,而且還是對(duì)個(gè)人能力的很好的訓(xùn)練。
    其次,以前我對(duì)數(shù)據(jù)結(jié)構(gòu)(c語言描述)的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)c語言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過實(shí)踐,使我在這幾個(gè)方面的認(rèn)識(shí)有所提高。讓自己有一定的能力去改正一些常見的錯(cuò)誤語法,很高興這兩周的學(xué)習(xí)讓我對(duì)數(shù)據(jù)結(jié)構(gòu)(c語言描述)有了新的認(rèn)識(shí),所以后在學(xué)習(xí)過程中,我會(huì)更加注視實(shí)踐操作,使自己便好地學(xué)好計(jì)算機(jī)。在這次課程設(shè)計(jì)的實(shí)驗(yàn)中,我收獲了許多知識(shí),通過查找大量資料,請(qǐng)教老師,以及不懈的努力,也培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力。我也學(xué)會(huì)了許多學(xué)習(xí)和解決實(shí)際問題的方法,讓我受益匪淺。課程設(shè)計(jì)對(duì)我來說,趣味性強(qiáng),不僅鍛煉能力,而且可以學(xué)到很多東西,在與老師和同學(xué)的交流過程中,互動(dòng)學(xué)習(xí),將知識(shí)融會(huì)貫通,也增強(qiáng)了我和同學(xué)之間的團(tuán)隊(duì)合作的能力。讓我們知道只要努力,集中精力解決問題,一定會(huì)有收獲的,過程也是很重要的。
    在這次課程設(shè)計(jì)中我們要學(xué)會(huì)利用時(shí)間,在規(guī)定的時(shí)間內(nèi)完成我們的任務(wù),要逐漸養(yǎng)成用c語言編寫程序的良好習(xí)慣。這些對(duì)我來說都是一種鍛煉,一個(gè)知識(shí)積累的過程,一種能力的提高。要打好基礎(chǔ),才能用更好的辦法,更簡(jiǎn)潔明了的程序解決實(shí)際問題,只有這樣才能進(jìn)一步的取得更好的成績(jī)。我們會(huì)更加努力,努力的去彌補(bǔ)自己的缺點(diǎn),發(fā)展自己的優(yōu)點(diǎn),去充實(shí)自己,只有在了解了自己的長短之后,我們會(huì)更加珍惜擁有的,更加努力的去完善它,增進(jìn)它。
    當(dāng)然我現(xiàn)在的水平還是很有限,但我還會(huì)繼續(xù)努力的,在解決實(shí)際問題時(shí)如果遇到了難題,我們要學(xué)會(huì)去查找大量的有關(guān)這方面的資料,還要借助于網(wǎng)絡(luò)不斷擴(kuò)大自己的知識(shí)面和閱讀量。這樣也可以鍛煉我們的自主學(xué)習(xí)能力和解決問題的能力,學(xué)到了許多以前沒學(xué)到的東西。
    在課程設(shè)計(jì)中的程序都比較復(fù)雜,所以需要我們要更加地細(xì)心,認(rèn)真的完成每一步的操作,修改語法,按照老師的指導(dǎo)思想來完成。還記得一開始拿到題目時(shí)我們的一臉茫然,而現(xiàn)在是收獲滿滿的自信,每個(gè)人都或多或少有所收獲,也讓我們對(duì)程序設(shè)計(jì)和算法有了進(jìn)一步理解、認(rèn)識(shí)。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十
    做了一個(gè)星期的程序設(shè)計(jì)終于做完了,在這次程序設(shè)計(jì)課中,真是讓我獲益匪淺,我突然發(fā)現(xiàn)寫程序還挺有意思的。由于上學(xué)期的c語言跟這學(xué)期的數(shù)據(jù)結(jié)構(gòu)都算不上真正的懂,對(duì)于書上的稍微難點(diǎn)的知識(shí)就是是而非的,所以我只是對(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ǔ)都沒掌握,更別說寫出一個(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é):
    第二、各種常用的排序算法,如冒泡排序、堆排序……,這些
    是必考的內(nèi)容,分?jǐn)?shù)不會(huì)少于20%;
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十一
    “數(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ù)及編寫程序的能力,使學(xué)生能夠根據(jù)問題要求和數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)組織的方法,把現(xiàn)實(shí)世界中的實(shí)際問題在計(jì)算機(jī)內(nèi)部表示出來并用軟件解決問題,培養(yǎng)良好的程序設(shè)計(jì)技能。
    當(dāng)初拿到這次課程設(shè)計(jì)題目時(shí),似乎無從下手,但是經(jīng)過分析可知,對(duì)于簡(jiǎn)單文本編輯器來說功能有限,不外乎創(chuàng)作文本、顯示文本、統(tǒng)計(jì)文本中字母—數(shù)字—空格—特殊字符—文本總字?jǐn)?shù)、查找、刪除及插入這幾項(xiàng)功能。于是,我進(jìn)行分模塊進(jìn)行編寫程序。雖然每個(gè)模塊程序并不大,但是每個(gè)模塊都要經(jīng)過一番思考才能搞清其算法思想,只要有了算法思想,再加上c程序語言基礎(chǔ),基本完成功能,但是,每個(gè)模塊不可能一次完成而沒有一點(diǎn)錯(cuò)誤,所以,我給自己定了一個(gè)初級(jí)目標(biāo):用c語言大體描述每個(gè)算法,然后經(jīng)調(diào)試后改掉其中明顯的錯(cuò)誤,并且根據(jù)調(diào)試結(jié)果改正一些算法錯(cuò)誤,當(dāng)然,這一目標(biāo)實(shí)現(xiàn)較難。最后,經(jīng)過反復(fù)思考,看一下程序是否很完善,如果能夠達(dá)到更完善當(dāng)然最好。并非我們最初想到的算法就是最好的算法,所以,有事我們會(huì)而不得不在編寫途中終止換用其他算法,但是,我認(rèn)為這不是浪費(fèi)時(shí)間,而是一種認(rèn)識(shí)過程,在編寫程序中遇到的問題會(huì)為我們以后編寫程序積累經(jīng)驗(yàn),避免再犯同樣的錯(cuò)誤。但是,有的方法不適用于這個(gè)程序,或許會(huì)適用于另外一個(gè)程序。所以,探索的過程是成長的過程,是為成功做的鋪墊。經(jīng)過努力后獲得成功,會(huì)更有成就感。
    在課程設(shè)計(jì)過程中通過獨(dú)立解決問題,首先分析設(shè)計(jì)題目中涉及到的數(shù)據(jù)類型,在我們學(xué)習(xí)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中不外乎線性存儲(chǔ)結(jié)構(gòu)及非線性存儲(chǔ)結(jié)構(gòu),非線性存儲(chǔ)結(jié)構(gòu)中有樹型,集合型,圖型等存儲(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ì),過程中錯(cuò)誤在所難免,所以要經(jīng)過仔細(xì)探索,對(duì)每個(gè)函數(shù)進(jìn)行改進(jìn)。
    程序基本完成后,功能雖然齊全,但是程序是否完善(例如,輸入數(shù)據(jù)時(shí)是否在其范圍之內(nèi),所以加入判斷語句是很有必要的)還需運(yùn)行測(cè)試多次,如有發(fā)現(xiàn)應(yīng)該對(duì)其進(jìn)行改善,當(dāng)然要在力所能及的前提下。
    課程設(shè)計(jì)過程雖然短暫,但是使我深刻理解數(shù)據(jù)結(jié)構(gòu)和算法課程對(duì)編程的重要作用,還有“數(shù)據(jù)結(jié)構(gòu)與算法”還提供了一些常用的基本算法思想及算法的編寫程序。通過獨(dú)立完成設(shè)計(jì)題目,使我系統(tǒng)了解編程的基本步驟,提高分析和解決實(shí)際問題的能力。通過實(shí)踐積累經(jīng)驗(yàn),才能有所創(chuàng)新。正所謂,良好的基礎(chǔ)決定上層建筑。只有基本功做好了,才有可能做出更好的成果。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十二
    這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,雖然上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識(shí)。上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識(shí)。
    數(shù)據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,但我覺得我們一低計(jì)算機(jī)里一門基礎(chǔ)課程定要把基礎(chǔ)學(xué)扎實(shí),定要把基礎(chǔ)學(xué)扎實(shí),然而這次短短的上機(jī)幫我又重新鞏固了c語言知識(shí),讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門語言知識(shí)讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門知識(shí),純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。
    純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。它對(duì)我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。來說具有一定的難度。它是其它編程語言的'一門基本學(xué)科。我選的上機(jī)題目是交叉合并兩個(gè)鏈表,對(duì)這個(gè)題目,我選的上機(jī)題目是交叉合并兩個(gè)鏈表,對(duì)這個(gè)題目,我覺得很基礎(chǔ)。剛開始調(diào)試代碼的時(shí)候有時(shí)就是一個(gè)很小的錯(cuò)覺得很基礎(chǔ)。剛開始調(diào)試代碼的時(shí)候有時(shí)就是一個(gè)很小的錯(cuò)調(diào)試代碼的時(shí)候誤,導(dǎo)致整個(gè)程序不能運(yùn)行,然而開始的我還沒從暑假的狀導(dǎo)致整個(gè)程序不能運(yùn)行,態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯(cuò)誤時(shí)我都非常焦躁,態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯(cuò)誤時(shí)我都非常焦躁,甚至想到了放棄,但我最終找到了狀態(tài),一步一步慢慢來,放棄,但我最終找到了狀態(tài),一步一學(xué)無止境,得自已懂得的知識(shí)很是不足,學(xué)無止境,以后還會(huì)更加的努力深入的學(xué)習(xí)。力深入的學(xué)習(xí)。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十三
    這是一門純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。剛開始學(xué)的時(shí)候確實(shí)有很多地方我很不理解,每次上課時(shí)老師都會(huì)給我們出不同的設(shè)計(jì)題目,對(duì)于我們一個(gè)初學(xué)者來說,無疑是一個(gè)具大的挑戰(zhàn),撞了幾次壁之后,我決定靜下心來,仔細(xì)去寫程序。老師會(huì)給我們需要編程的內(nèi)容一些講解,順著老師的思路,來完成自己的設(shè)計(jì),我們可以開始運(yùn)行自己的'程序。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十四
    設(shè)計(jì)結(jié)束后要寫出課程設(shè)計(jì)報(bào)告,以作為整個(gè)課程設(shè)計(jì)評(píng)分的書面依據(jù)和存檔材料。設(shè)計(jì)報(bào)告以規(guī)定格式的電子文檔書寫,打印并裝訂,排版及圖,表要清楚,工整。裝訂順序如下:封面、目錄、正文。正文包括以下7個(gè)內(nèi)容:
    1、需求分析
    陳述說明程序設(shè)計(jì)的任務(wù),強(qiáng)調(diào)的是程序要做什么,需要什么結(jié)果、所能達(dá)到的功能。
    2、概要設(shè)計(jì)
    實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有數(shù)據(jù)類型,對(duì)每個(gè)操作只需要寫出偽碼算法;對(duì)主程序和其他模塊也都需要寫出偽碼算法(偽碼算法達(dá)到的詳細(xì)程度建議為:按照偽碼算法可以在計(jì)算機(jī)鍵盤直接輸入高級(jí)程序設(shè)計(jì)語言程序);可采用流程圖、ns圖進(jìn)行描述,畫出函數(shù)和過程的調(diào)用關(guān)系圖。
    4、調(diào)試分析
    內(nèi)容包括:
    c.經(jīng)驗(yàn)和體會(huì)等。5.測(cè)試結(jié)果
    列出你的測(cè)試結(jié)果,包括輸入和輸出。這里的測(cè)試數(shù)據(jù)應(yīng)該完整和嚴(yán)格,最好多于需求分析中所列。
    6、參考文獻(xiàn)
    列出參考的相關(guān)資料和書籍。
    封面格式如下:
    數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
    班級(jí):________________________
    姓名:____________________
    指導(dǎo)教師:___________________
    成績(jī):__________________________
    信息工程學(xué)院
    年月日
    目錄
    1、需求分析………………………………………………
    22.概要設(shè)計(jì)………………………………………………2
    3、詳細(xì)設(shè)計(jì)………………………………………………2
    4、調(diào)試分析………………………………………………2
    附錄……………………………………………………
    一、需求分析
    二、概要設(shè)計(jì)
    三、詳細(xì)設(shè)計(jì)
    四、調(diào)試分析
    五、測(cè)試結(jié)果
    六、參考文獻(xiàn)
    七、附錄
    附錄為程序代碼!4
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十五
    談到計(jì)算機(jī)方面的專業(yè)課程,我覺得數(shù)據(jù)結(jié)構(gòu)算是一門必不可少的課了,它是計(jì)算機(jī)從業(yè)和研究人員了解、開發(fā)及最大程度的利用計(jì)算機(jī)硬件的一種工具。數(shù)據(jù)結(jié)構(gòu)與算法分析是兩門緊密聯(lián)系的課程,算法要靠好的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),二者的關(guān)系是密不可分的,談到算法不得不講數(shù)據(jù)結(jié)構(gòu),談數(shù)據(jù)結(jié)構(gòu)也不可避免的要了解算法,好的算法一定有一個(gè)好的數(shù)據(jù)結(jié)構(gòu),很多算法實(shí)際上是對(duì)某種數(shù)據(jù)結(jié)構(gòu)實(shí)行的一種變換,研究算法也就是研究在實(shí)行變換過程中數(shù)據(jù)的動(dòng)態(tài)性質(zhì)。這兩門課程分別是我在大二和研一的時(shí)候?qū)W的,因?yàn)樗鼈兠芮械穆?lián)系,這里將其放在一起總結(jié)如下。
    什么是數(shù)據(jù)結(jié)構(gòu)呢?研究數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))以及它們之間的關(guān)系,且為該結(jié)構(gòu)定義相應(yīng)的運(yùn)算設(shè)計(jì)相應(yīng)的算法。這里的數(shù)據(jù)是指可輸入到計(jì)算機(jī)能被程序處理的符號(hào)的集合。其中,數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)之間邏輯關(guān)系的描述,邏輯結(jié)構(gòu)的分類有線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖結(jié)構(gòu)。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)在計(jì)算機(jī)中存儲(chǔ)結(jié)構(gòu),也稱為物理結(jié)構(gòu),它有4類基本的存儲(chǔ)映射方法:1.順序的方法;2.鏈接的方法;3.索引的方法;4.散列的方法。在程序設(shè)計(jì)語言中,數(shù)據(jù)結(jié)構(gòu)直接反映在數(shù)據(jù)類型上,比如一個(gè)整型變量就是一個(gè)節(jié)點(diǎn),根據(jù)類型給他分配內(nèi)存單元。抽象數(shù)據(jù)類型:一組值以及在這些值上定義的操作集合,它是描述數(shù)據(jù)結(jié)構(gòu)的一種理論工具,其特點(diǎn)是把數(shù)據(jù)結(jié)構(gòu)作為獨(dú)立于應(yīng)用程序的一種抽象代數(shù)結(jié)構(gòu)。
    線性表結(jié)構(gòu):由一系列元素組成的有序的序列,除了第一個(gè)元素和最后一個(gè)元素外,每個(gè)元素都只有一個(gè)直接前趨和直接后繼,元素的個(gè)數(shù)稱為線性表的長度。它的存儲(chǔ)方式有順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。順序存儲(chǔ)方式它的優(yōu)點(diǎn)是存儲(chǔ)單元是連續(xù)的,適合快速訪問元素內(nèi)容,鏈表的特點(diǎn)是動(dòng)態(tài)申請(qǐng)內(nèi)存空間,并通過指針來鏈接結(jié)點(diǎn),按照線性表的前驅(qū)關(guān)系把一個(gè)個(gè)結(jié)點(diǎn)鏈接起來,這樣可以動(dòng)態(tài)地根據(jù)需要分配內(nèi)存空間,經(jīng)常用于插入新結(jié)點(diǎn)或刪除節(jié)點(diǎn)的需要,鏈表還可以根據(jù)結(jié)點(diǎn)中指針個(gè)數(shù)分為單鏈表、雙鏈表、循環(huán)鏈表等。在線性表結(jié)構(gòu)中有兩類特別的線性表:棧和隊(duì)列。棧是一種限制訪問端口的線性表,常稱為后進(jìn)先出表。正是這種特殊的性質(zhì)使得棧的用途非常廣泛,比如在計(jì)算表達(dá)式的值時(shí)處理運(yùn)算符的先后次序,另外一個(gè)大的用處就是遞歸了,hanoi 塔就是最典型的用了遞歸的思想,在算法中,也有很多運(yùn)用遞歸思想的例子。隊(duì)列也屬于限制訪問點(diǎn)的線性表,它的特點(diǎn)就是加入和刪除元素都只能在隊(duì)列的一端進(jìn)行,即隊(duì)列首出,隊(duì)列尾進(jìn),最大的特點(diǎn)是先來先服務(wù),先進(jìn)先出。因?yàn)檫@個(gè)特點(diǎn),隊(duì)列常被用作消息緩沖器。
    在算法設(shè)計(jì)中,順序表主要用于檢索,而利用棧中的遞歸思想在算法中則應(yīng)用非常廣泛,如遞歸排序,分治算法等。
    樹結(jié)構(gòu):是一種非常重要的非線性數(shù)據(jù)結(jié)構(gòu),它是由一個(gè)根結(jié)點(diǎn)和若干葉結(jié)點(diǎn)組成的樹狀結(jié)構(gòu),除了根結(jié)點(diǎn)每個(gè)結(jié)點(diǎn)只能有一個(gè)父節(jié)點(diǎn),可以有若干子結(jié)點(diǎn),若干個(gè)樹結(jié)構(gòu)還可以構(gòu)成森林,樹的存儲(chǔ)結(jié)構(gòu)也分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ),最典型的是左孩子右兄弟法。在樹結(jié)構(gòu)中比較重要的算法就是周游(遍歷)樹,有先根次序、后根次序以及中根次序。樹結(jié)構(gòu)中有幾類非常重要的特殊樹結(jié)構(gòu),如二叉樹,b樹,b+樹等,其中,二叉樹應(yīng)用最為廣泛。
    二叉樹:是指每個(gè)結(jié)點(diǎn)最多有兩個(gè)子結(jié)點(diǎn)的樹結(jié)構(gòu),具體細(xì)分,根據(jù)葉子結(jié)點(diǎn)的特性可分為滿二叉樹、完全二叉樹等。二叉樹的遍歷也分為深度優(yōu)先和廣度優(yōu)先。另外,二叉樹有幾條非常重要的性質(zhì),這也使得它的應(yīng)用非常廣泛。
    在算法設(shè)計(jì)中,典型的利用樹的深度優(yōu)先遍歷的算法是回溯法,而典型的廣度優(yōu)先搜索算法是分枝定界法。
    圖:是一種較線性表和樹更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。一般來講,數(shù)據(jù)的邏輯結(jié)構(gòu)可表示為結(jié)點(diǎn)的有窮集合k和k上的一個(gè)關(guān)系r,如果對(duì)k中結(jié)點(diǎn)相對(duì)于r的前驅(qū)、后繼個(gè)數(shù)加以限制,則可以分別定義線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖結(jié)構(gòu),即:
    圖結(jié)構(gòu):不限制前驅(qū)的個(gè)數(shù),亦不限制后繼的個(gè)數(shù),反映一種網(wǎng)狀關(guān)系。
    通常用g=(v,e)代表一個(gè)圖,其中v是頂點(diǎn)集,e是邊集。圖分為有向圖和無向圖,圖的存儲(chǔ)方式有鄰接表和鄰接矩陣法。和樹類似的,圖中也需要周游,同樣有深度優(yōu)先搜索和廣度優(yōu)先搜索,而比樹的周游要更復(fù)雜,也更重要。在這一塊中,有兩種比較典型的求最短路徑和最小支撐樹的算法需要注意,它們分別是dijkstra算法和prim算法。另外需要注意的是圖的連通性。
    在算法設(shè)計(jì)中,典型的用到圖論的算法有貪心算法和動(dòng)態(tài)規(guī)劃算法。
    (1)輸入:有零個(gè)或多個(gè)由外部提供的量作為算法的輸入。(2)輸出:算法產(chǎn)生至少一個(gè)量作為輸出。
    (3)確定性:組成算法的每條指令是清晰的,無歧義的。(4)有限性:算法中每條指令的執(zhí)行次數(shù)是有限的,執(zhí)行每條指令的時(shí)間也是有限的。
    我們研究一個(gè)算法或者評(píng)價(jià)一個(gè)算法主要是通過估計(jì)該算法的復(fù)雜性,包括時(shí)間復(fù)雜性和空間復(fù)雜性。空間復(fù)雜性是指使用該算法的程序在運(yùn)行時(shí)需要占用多少內(nèi)存空間,具體包括指令空間、數(shù)據(jù)空間和環(huán)境棧空間。時(shí)間復(fù)雜性是指執(zhí)行該程序所需要的時(shí)間量級(jí),通常是估算的時(shí)間,包括編譯時(shí)間和運(yùn)行時(shí)間。同時(shí)評(píng)價(jià)一個(gè)算法的好壞還要看其時(shí)間復(fù)雜性和空間復(fù)雜性隨著輸入規(guī)模的增長趨勢(shì),一般能接受的最好是線性增長。在算法設(shè)計(jì)這本書中,每介紹一個(gè)算法都會(huì)分析其算法復(fù)雜度,由此可看出它的重要性。
    首先,從遞歸的分治算法開始。分治算法的基本思想是將一個(gè)規(guī)模為n的問題分解為k個(gè)規(guī)模較小的子問題,這些子問題互相獨(dú)立且與原問題相同。遞歸的解這些子問題,然后將各個(gè)子問題的解合并得到原問題的解。該算法的主要應(yīng)用有大整數(shù)乘法,矩陣乘法、合并排序等。可以大大降低算法的時(shí)間復(fù)雜度,但使用遞歸棧可能增加程序的空間規(guī)模。
    動(dòng)態(tài)規(guī)劃算法和貪心算法:與分治算法類似,動(dòng)態(tài)規(guī)劃的基本思想也是將待求解問題分解成若干子問題,先求解子問題,然后從這些子問題的解得到原問題的解。與分治算法不同的是,適合于用動(dòng)態(tài)規(guī)劃法求解的問題,經(jīng)分解得到的子問題往往不是相互獨(dú)立的。動(dòng)態(tài)規(guī)劃算法適用于解最優(yōu)化問題。通??砂匆韵?個(gè)步驟:
    (1)找出最優(yōu)解的性質(zhì),并刻畫其結(jié)構(gòu)特征。(2)遞歸的定義最優(yōu)值。
    (3)以自底向上的方式計(jì)算出最優(yōu)值。
    (4)根據(jù)計(jì)算最優(yōu)值時(shí)得到的信息,構(gòu)造最優(yōu)解。
    動(dòng)態(tài)規(guī)劃算法的基本要素是最優(yōu)子結(jié)構(gòu)性質(zhì)和子問題重疊性質(zhì)。
    最優(yōu)子結(jié)構(gòu)性質(zhì)。如果問題的最優(yōu)解所包含的子問題的解也是最優(yōu)的,我們就稱該問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)(即滿足最優(yōu)化原理)。最優(yōu)子結(jié)構(gòu)性質(zhì)為動(dòng)態(tài)規(guī)劃算法解決問題提供了重要線索。
    子問題重疊性質(zhì)。子問題重疊性質(zhì)是指在用遞歸演算法自頂向下對(duì)問題進(jìn)行求解時(shí),每次產(chǎn)生的子問題并不總是新問題,有些子問題會(huì)被重復(fù)計(jì)算多次。動(dòng)態(tài)規(guī)劃算法正是利用了這種子問題的重疊性質(zhì),對(duì)每一個(gè)子問題只計(jì)算一次,然后將其計(jì)算結(jié)果保存在一個(gè)表格中,當(dāng)再次需要計(jì)算已經(jīng)計(jì)算過的子問題時(shí),只是在表格中簡(jiǎn)單地查看一下結(jié)果,從而獲得較高的效率。
    另外一點(diǎn)要素是備忘錄方法,它作為動(dòng)態(tài)規(guī)劃算法的變形,用表格保存已解決問題的答案,在下次需要解此子問題時(shí),只要簡(jiǎn)單查看子問題的解答,而不必重新計(jì)算。與動(dòng)態(tài)規(guī)劃不同的是備忘錄方法的遞歸是自頂向下的,而動(dòng)態(tài)規(guī)劃則是自底向上的。
    動(dòng)態(tài)規(guī)劃算法設(shè)計(jì)策略典型的應(yīng)用案例有:矩陣連乘、最大字段和、流水作業(yè)調(diào)度等。有時(shí)滿足動(dòng)態(tài)規(guī)劃條件的問題可以有更好的算法,比如貪心算法。貪心算法即總是做出在當(dāng)前看來是最好的選擇。也就是說貪心算法并不從整體最優(yōu)上加以考慮,它所做的總是做出的選擇只是在某種意義上的局部最優(yōu)。這種啟發(fā)式的策略并不能總是奏效,然而對(duì)某些特定的問題確能達(dá)到預(yù)期目的。比如活動(dòng)安排的例子。
    貪心算法的基本要素主要有貪心選擇性質(zhì)和最優(yōu)子結(jié)構(gòu)性質(zhì)。所謂貪心選擇性質(zhì)是指所求問題的整體最優(yōu)解可以通過一系列局部最優(yōu)的選擇,即貪心選擇來達(dá)到。這是貪心算法與動(dòng)態(tài)規(guī)劃的主要區(qū)別,它們的共同點(diǎn)是都要求問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)。
    貪心算法的典型案列是:活動(dòng)安排、最優(yōu)裝載問題、最短路徑和最優(yōu)生成樹問題?;厮莘ê头种Χń绶ǎ夯厮莘ㄓ小巴ㄓ玫慕忸}法”之稱。用它可以系統(tǒng)的搜索一個(gè)問題的所有解或任一解。它在問題的解空間樹中,按深度優(yōu)先策略,從根節(jié)點(diǎn)出發(fā)搜索解空間樹。其算法框架包含遞歸回溯和迭代回溯,兩個(gè)特別的解空間樹為子集樹和排列樹。典型的回溯法的案例有:批處理作業(yè)調(diào)度、圖的m著色、旅行售貨員問題、0-1背包問題等。
    分枝定界法類似于回溯法,也是在問題的解空間上搜索問題解的算法。一般情況下,分治定界法與回溯法的求解目標(biāo)不同?;厮莘ǖ那蠼饽繕?biāo)是找出解空間中滿足約束條件的所有 的解,而分枝定界法的求解目標(biāo)則是找出滿足約束條件的一個(gè)解,或是滿足約束條件的解中找出使某一目標(biāo)函數(shù)值達(dá)到極大或極小的解,即在某種意義下的最優(yōu)解。由于求解目標(biāo)不同,導(dǎo)致分支定界法與回溯法對(duì)解空間的搜索方式也不相同?;厮莘ㄒ陨疃葍?yōu)先的方式搜索解空間,而分枝定界法則以廣度優(yōu)先或以最小耗費(fèi)優(yōu)先的方式搜索解空間。
    另外,在算法分析中一定要提的是np問題。首先需要介紹p(polynomial,多項(xiàng)式)問題.p問題是可以在多項(xiàng)式時(shí)間內(nèi)被確定機(jī)(通常意義的計(jì)算機(jī))解決的問題。np(non-deterministic polynomial, 非確定多項(xiàng)式)問題,是指可以在多項(xiàng)式時(shí)間內(nèi)被非確定機(jī)(他可以猜,他總是能猜到最能滿足你需要的那種選擇,如果你讓他解決n皇后問題,他只要猜n次就能完成----每次都是那么幸運(yùn))解決的問題.這里有一個(gè)著名的問題----千禧難題之首,是說p問題是否等于np問題,也即是否所有在非確定機(jī)上多項(xiàng)式可解的問題都能在確定機(jī)上用多項(xiàng)式時(shí)間求解。
    np完全(np complete,npc)問題是指這樣一類np問題,所有的np問題都可以用多項(xiàng)式時(shí)間劃歸到他們中的一個(gè)。所以顯然np完全的問題具有如下性質(zhì):它可以在多項(xiàng)式時(shí)間內(nèi)求解,當(dāng)且僅當(dāng)所有的其他的np-完全問題也可以在多項(xiàng)式時(shí)間內(nèi)求解。這樣一來,只要我們找到一個(gè)npc問題的多項(xiàng)式解,所有的np問題都可以多項(xiàng)式時(shí)間內(nèi)劃歸成這個(gè)npc問題,再用多項(xiàng)式時(shí)間解決,這樣np就等于p了。
    小結(jié)一下,在算法設(shè)計(jì)這么課中學(xué)了這么幾大類典型的算法,里面也涉及到具體的應(yīng)用案例,但我覺得學(xué)算法的目的遠(yuǎn)不是學(xué)會(huì)這幾種固定的特殊問題的解法而已,事實(shí)上領(lǐng)會(huì)這些巧妙算法背后的思想然后學(xué)會(huì)遷移到其他新的問題中去才是領(lǐng)會(huì)了算法設(shè)計(jì)的精髓。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十六
    本次課程設(shè)計(jì),使我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門課程有了更深入的理解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識(shí)的同時(shí),加強(qiáng)上機(jī)實(shí)踐。
    我的課程設(shè)計(jì)題目是線索二叉樹的運(yùn)算。剛開始做這個(gè)程序的時(shí)候,感到完全無從下手,甚至讓我覺得完成這次程序設(shè)計(jì)根本就是不可能的,于是開始查閱各種資料以及參考文獻(xiàn),之后便開始著手寫程序,寫完運(yùn)行時(shí)有很多問題。特別是實(shí)現(xiàn)線索二叉樹的刪除運(yùn)算時(shí)很多情況沒有考慮周全,經(jīng)常運(yùn)行出現(xiàn)錯(cuò)誤,但通過同學(xué)間的幫助最終基本解決問題。
    在本課程設(shè)計(jì)中,我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。并對(duì)vc有了更深入的了解。《數(shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對(duì)學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對(duì)學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(xùn)練。此外,還有更重要的一點(diǎn)是:機(jī)器是比任何教師更嚴(yán)厲的檢查者。因此,在“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)過程中,必須嚴(yán)格按照老師的要求,主動(dòng)地、積極地、認(rèn)真地做好每一個(gè)實(shí)驗(yàn),以不斷提高自己的編程能力與專業(yè)素質(zhì)。
    通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識(shí)到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時(shí)間上機(jī)練習(xí)。這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動(dòng)手能力,使我掌握了程序設(shè)計(jì)的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。
    總的來說,這次課程設(shè)計(jì)讓我獲益匪淺,對(duì)數(shù)據(jù)結(jié)構(gòu)也有了進(jìn)一步的理解和認(rèn)
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十七
    本次課程設(shè)計(jì),使我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門課程有了更深入的理解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識(shí)的同時(shí),加強(qiáng)上機(jī)實(shí)踐。
    我的課程設(shè)計(jì)題目是線索二叉樹的運(yùn)算。剛開始做這個(gè)程序的時(shí)候,感到完全無從下手,甚至讓我覺得完成這次程序設(shè)計(jì)根本就是不可能的,于是開始查閱各種資料以及參考文獻(xiàn),之后便開始著手寫程序,寫完運(yùn)行時(shí)有很多問題。特別是實(shí)現(xiàn)線索二叉樹的刪除運(yùn)算時(shí)很多情況沒有考慮周全,經(jīng)常運(yùn)行出現(xiàn)錯(cuò)誤,但通過同學(xué)間的幫助最終基本解決問題。
    在本課程設(shè)計(jì)中,我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。并對(duì)vc有了更深入的了解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對(duì)學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的`;另一方面,上機(jī)實(shí)習(xí)是對(duì)學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(xùn)練。此外,還有更重要的一點(diǎn)是:機(jī)器是比任何教師更嚴(yán)厲的檢查者。因此,在“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)過程中,必須嚴(yán)格按照老師的要求,主動(dòng)地、積極地、認(rèn)真地做好每一個(gè)實(shí)驗(yàn),以不斷提高自己的編程能力與專業(yè)素質(zhì)。
    通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識(shí)到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時(shí)間上機(jī)練習(xí)。這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動(dòng)手能力,使我掌握了程序設(shè)計(jì)的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。
    數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)心得體會(huì)篇十八
    設(shè)計(jì)結(jié)束后要寫出課程設(shè)計(jì)報(bào)告,以作為整個(gè)課程設(shè)計(jì)評(píng)分的書面依據(jù)和存檔材料。設(shè)計(jì)報(bào)告以規(guī)定格式的電子文檔書寫,打印并裝訂,排版及圖,表要清楚,工整。 裝訂順序如下:封面、目錄、正文。正文包括以下7個(gè)內(nèi)容:
    1、需求分析
    陳述說明程序設(shè)計(jì)的任務(wù),強(qiáng)調(diào)的是程序要做什么 ,需要什么結(jié)果、所能達(dá)到的功能。
    2、概要設(shè)計(jì)
    實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有數(shù)據(jù)類型,對(duì)每個(gè)操作只需要寫出偽碼算法;對(duì)主程序和其他模塊也都需要寫出偽碼算法(偽碼算法達(dá)到的詳細(xì)程度建議為:按照偽碼算法可以在計(jì)算機(jī)鍵盤直接輸入高級(jí)程序設(shè)計(jì)語言程序);可采用流程圖、n s 圖進(jìn)行描述,畫出函數(shù)和過程的調(diào)用關(guān)系圖。
    4、調(diào)試分析
    內(nèi)容包括:
    c.經(jīng)驗(yàn)和體會(huì)等。5.測(cè)試結(jié)果
    列出你的測(cè)試結(jié)果,包括輸入和輸出。這里的測(cè)試數(shù)據(jù)應(yīng)該完整和嚴(yán)格,最好多于需求分析中所列。
    6、參考文獻(xiàn)
    列出參考的相關(guān)資料和書籍。
    封面格式如下:
    數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
    班級(jí):_____ _____ _____ _________
    姓名:____________________
    指導(dǎo)教師:___________________
    成績(jī):__________________________
    信息工程學(xué)院
    年月日
    目錄
    1、需求分析 ………………………………………………
    22.概要設(shè)計(jì)………………………………………………2
    3、詳細(xì)設(shè)計(jì) ………………………………………………2
    4、調(diào)試分析 ………………………………………………2
    附錄……………………………………………………
    一、需求分析
    二、概要設(shè)計(jì)
    三、詳細(xì)設(shè)計(jì)
    四、調(diào)試分析
    五、測(cè)試結(jié)果
    六、參考文獻(xiàn)
    七、附錄
    附錄為程序代碼!4