數(shù)據(jù)結(jié)構(gòu)與算法教程

出版時(shí)間:2012-10  出版社:唐寧九、游洪躍、孫界平、 朱宏 清華大學(xué)出版社 (2012-10出版)  作者:唐寧九,游洪躍,孫界平,等 編  頁數(shù):162  

內(nèi)容概要

  《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)實(shí)驗(yàn)和課程設(shè)計(jì)》結(jié)合C++面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn),討論了數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)知識(shí),并構(gòu)建了實(shí)驗(yàn)與課程設(shè)計(jì),對(duì)所有算法都在Visual C++6.0、Visual C++2005、Visual C++ 2005 Express、Dev-C++和MinGW Developer Studio開發(fā)環(huán)境中進(jìn)行了嚴(yán)格的測(cè)試,并在作者個(gè)人網(wǎng)頁上提供了大量的教學(xué)支持內(nèi)容?! ⊥ㄟ^本書的學(xué)習(xí),不但能迅速提高數(shù)據(jù)結(jié)構(gòu)與算法的水平,同時(shí)還能提高C++程序設(shè)計(jì)的能力?!陡叩葘W(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)實(shí)驗(yàn)和課程設(shè)計(jì)》可作為數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)與算法分析、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法等課程實(shí)驗(yàn)與課程設(shè)計(jì)的教材,也可供其他從事軟件開發(fā)工作的讀者學(xué)習(xí)參考使用。

書籍目錄

第一部分基礎(chǔ)知識(shí) 1.1緒論 1.1.1數(shù)據(jù)結(jié)構(gòu)的基本概念 1.1.2算法和算法分析 1.1.3實(shí)用程序軟件包 1.2線性表 1.2.1線性表的邏輯結(jié)構(gòu) 1.2.2線性表的順序存儲(chǔ)結(jié)構(gòu) 1.2.3線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 1.3棧和隊(duì)列 1.3.1棧 1.3.2隊(duì)列 1.4 串 1.4.1串類型的定義 1.4.2字符串模式匹配算法 1.5數(shù)組和廣義表 1.5.1數(shù)組 1.5.2矩陣 1.5.3廣義表 1.6樹和二叉樹 1.6.1樹的基本概念 1.6.2二叉樹 1.6.3二叉樹遍歷 1.6.4線索二叉樹 1.6.5樹和森林 1.6.6哈夫曼樹與哈夫曼編碼 1.6.7樹的計(jì)數(shù) 1.7圖 1.7.1圖的定義和術(shù)語 1.7.2圖的存儲(chǔ)表示 1.7.3圖的遍歷 1.7.4圖的最小代價(jià)生成樹 1.7.5有向無環(huán)圖及應(yīng)用 1.7.6最短路徑 1.8查找 1.8.1查找的基本概念 1.8.2靜態(tài)表的查找 1.8.3動(dòng)態(tài)查找表 1.8.4散列表 1.9排序 1.9.1概述 1.9.2插入排序 1.9.3交換排序 1.9.4選擇排序 1.9.5歸并排序 1.9.6基數(shù)排序 1.9.7外部排序 1.10文件 1.10.1主存儲(chǔ)器和輔助存儲(chǔ)器 1.10.2各種常用文件結(jié)構(gòu) 1.11算法設(shè)計(jì)與分析 1.11.1算法設(shè)計(jì) 1.11.2算法分析 第二部分實(shí)驗(yàn) 實(shí)驗(yàn)1不帶頭結(jié)點(diǎn)形式的單鏈表 實(shí)驗(yàn)2改造串類 實(shí)驗(yàn)3引用數(shù)使用空間表法廣義表存儲(chǔ)結(jié)構(gòu) 實(shí)驗(yàn)4改進(jìn)哈夫曼樹類模板 實(shí)驗(yàn)5改造最小生成樹的Kruskal算法的實(shí)現(xiàn) 實(shí)驗(yàn)6鏈地址法處理沖突的散列表 實(shí)驗(yàn)7優(yōu)化快速排序算法的實(shí)現(xiàn) 實(shí)驗(yàn)8n皇后問題 第三部分課程設(shè)計(jì) 項(xiàng)目1算術(shù)表達(dá)式求值 項(xiàng)目2簡(jiǎn)單文本編輯器 項(xiàng)目3壓縮軟件 項(xiàng)目4公園導(dǎo)游系統(tǒng) 項(xiàng)目5專家系統(tǒng)應(yīng)用——?jiǎng)游镉螒?項(xiàng)目6詞典變位詞檢索系統(tǒng) 附錄A課本的軟件包 附錄B實(shí)驗(yàn)報(bào)告格式 附錄C課程設(shè)計(jì)報(bào)告格式 參考文獻(xiàn)

章節(jié)摘錄

版權(quán)頁:   插圖:   1.8 查找 1.8.1 查找的基本概念 查找表(Search Table)是由同一類型的數(shù)據(jù)元素(或記錄)所組成的集合。 對(duì)查找表通常有如下4種操作。 ①查詢某個(gè)“特定的”數(shù)據(jù)元素是否在查找表中。 ②檢索某個(gè)“特定的”數(shù)據(jù)元素的各種屬性。 ③在查找表中插入一個(gè)數(shù)據(jù)元素。 ④從查找表中刪除某個(gè)元素。 前兩種操作統(tǒng)稱為“查找”的操作,如果只對(duì)查找表進(jìn)行前兩種“查找”的操作,也就是查找表的元素不發(fā)生變化,這樣的查找表稱為靜態(tài)查找表(Static Serach Table);如在查找過程中同時(shí)還要插入查找表中不存在的數(shù)據(jù)元素或從查找表中刪除已存在的某個(gè)數(shù)據(jù)元素,也就是查找表的的數(shù)據(jù)元素要發(fā)生變化,這樣的查找表稱為動(dòng)態(tài)查找表(DynamicSerach Table)。 關(guān)鍵字是數(shù)據(jù)元素(或記錄)中某個(gè)數(shù)據(jù)項(xiàng)的值,用它可標(biāo)識(shí)(識(shí)別)一個(gè)數(shù)據(jù)元素(或記錄)。對(duì)于查找表,假設(shè)每個(gè)數(shù)據(jù)元素都與一個(gè)關(guān)鍵字相關(guān),并且記錄都可按關(guān)鍵字進(jìn)行比較,可以使用類型轉(zhuǎn)換函數(shù)自動(dòng)將數(shù)據(jù)元素類型轉(zhuǎn)換為關(guān)鍵字類型,從而實(shí)現(xiàn)將數(shù)據(jù)元素的比較自動(dòng)轉(zhuǎn)換為關(guān)鍵字的比較。 1.8.2靜態(tài)表的查找 1.順序查找 一般采用數(shù)組表示靜態(tài)表,其查找過程是從第l個(gè)記錄開始逐個(gè)地對(duì)記錄的關(guān)鍵字的值進(jìn)行比較,如某個(gè)記錄的關(guān)鍵字的值和給定值相等,則查找成功,返回此記錄的序號(hào);如果直到最后一個(gè)記錄的關(guān)鍵字的值都和給定值不相等,則表示查找表中沒有所查的記錄,查找失敗,返回—1。 2.有序表的查找 有序表是指查找表的元素按關(guān)鍵字有序,也就是滿足: 有序表一般采用折半查找(Binary Serach)來實(shí)現(xiàn),折半查找的本質(zhì)是首先確定待查元素所在的范圍,然后再逐步縮小范圍(區(qū)間),直到查找到元素或查找失敗為止。 折半查找過程是用查找區(qū)間的中間位置元素的關(guān)鍵字與給定值進(jìn)行比較,如相等,則查找成功,如不相等,將縮小范圍,直到新的區(qū)間中間位置的關(guān)鍵字等于給定值或low>high(表示找查失?。r(shí)為止。 對(duì)于折半查找,一般通過折半查找判定樹進(jìn)行分析,設(shè)待查區(qū)間為[low,high],則折半查找判定樹遞歸定義如下。

編輯推薦

《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)實(shí)驗(yàn)和課程設(shè)計(jì)》可作為數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)與算法分析、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法等課程實(shí)驗(yàn)與課程設(shè)計(jì)的教材,也可供其他從事軟件開發(fā)工作的讀者學(xué)習(xí)參考使用。

圖書封面

評(píng)論、評(píng)分、閱讀與下載


    數(shù)據(jù)結(jié)構(gòu)與算法教程 PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

 

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7