出版時間:2008-1 出版社:中央廣播電視大學(xué)出版社 作者:李偉生 著 頁數(shù):209
前言
“數(shù)據(jù)結(jié)構(gòu)”是計算機專業(yè)的專業(yè)基礎(chǔ)課和主干課程之一。隨著計算機技術(shù)的發(fā)展和廣泛應(yīng)用,本課程已經(jīng)成為其他專業(yè)熱門的限選課和選修課。本書是根據(jù)中央廣播電視大學(xué)計算機科學(xué)與技術(shù)專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)大綱的要求編寫的?! ∪珪卜?章,第l章介紹有關(guān)數(shù)據(jù)結(jié)構(gòu)和算法的基本概念,為以下章節(jié)的學(xué)習(xí)作準(zhǔn)備。第2~7章由淺入深地討論了線性表、棧和隊列、串、數(shù)組和廣義表、樹及圖等基本的數(shù)據(jù)結(jié)構(gòu),并著重介紹了它們在計算機中的存儲方法和相關(guān)算法,使讀者對以上常用數(shù)據(jù)結(jié)構(gòu)有一個基本的了解,并為具體應(yīng)用打下良好基礎(chǔ)。第8-9章結(jié)合相關(guān)的數(shù)據(jù)結(jié)構(gòu),針對非數(shù)值算法中最常用的“查找”、“排序”算法的部分典型算例,介紹了算法的原理和具體實現(xiàn)方法。這兩章也是數(shù)據(jù)結(jié)構(gòu)的一個初步應(yīng)用。書中以c語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言,給出了部分程序。讀者按照程序中的提示和注釋,在相應(yīng)的運行環(huán)境中很容易改寫并運行相關(guān)程序?! ♂槍V播電視大學(xué)學(xué)生的特點和實際情況,“數(shù)據(jù)結(jié)構(gòu)”課程更應(yīng)該注重于應(yīng)用,教學(xué)中要突出重點。所以本書在教學(xué)內(nèi)容上遵循少而精和重應(yīng)用的原則,略去了數(shù)據(jù)結(jié)構(gòu)的形式定義、抽象數(shù)據(jù)類型等概念和內(nèi)容。而對算法分析,則僅僅介紹了一些基本原理,并說明如何直觀地對算法進行評估。對現(xiàn)有部分教材中列出但不作教學(xué)要求的章節(jié)、帶*號的內(nèi)容,本書均作了刪除。另外還刪改了部分較煩瑣但不影響本課程知識結(jié)構(gòu)的內(nèi)容。
內(nèi)容概要
《數(shù)據(jù)結(jié)構(gòu)(本科)》共9章,依次介紹數(shù)據(jù)結(jié)構(gòu)和算法的基本概念、線性表、棧和隊列、串、數(shù)組和廣義表、樹和二叉樹、圖、查找和排序算法等。附錄部分是相關(guān)章節(jié)的實驗內(nèi)容?!稊?shù)據(jù)結(jié)構(gòu)(本科)》在教學(xué)內(nèi)容上遵循少而精和重應(yīng)用的原則。在敘述方法上力求深入淺出、通俗易懂。全書用C語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言,使初學(xué)者和自學(xué)者易于掌握?!稊?shù)據(jù)結(jié)構(gòu)(本科)》可作為大中專院校計算機類專業(yè)及相關(guān)專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程的教材,也可作為從事計算機工程和應(yīng)用人員的參考書。
書籍目錄
1 緒論1.1 數(shù)據(jù)結(jié)構(gòu)的基本術(shù)語和概念1.2 算法和算法分析簡介1.2.1 算法1.2.2 時間復(fù)雜度1.2.3 空間復(fù)雜度本章小結(jié)習(xí)題2 線性表2.1 線性表的定義2.2 線性表的邏輯結(jié)構(gòu)和基本操作2.2.1 線性表的邏輯結(jié)構(gòu)2.2.2 線性表的基本操作2.3 線性表的順序存儲結(jié)構(gòu)(順序表)及相關(guān)操作2.3.1 順序存儲結(jié)構(gòu)的概念2.3.2 利用數(shù)組處理線性表2.3.3 利用指針(變量)處理線性表2.3.4 順序存儲結(jié)構(gòu)的線性表(順序表)的操作2.3.5 插入、刪除操作的時間復(fù)雜度分析2.4 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)(鏈表)及相關(guān)操作2.4.1 線性表的鏈?zhǔn)酱鎯Φ幕靖拍?.4.2 單向鏈表2.4.3 單向循環(huán)鏈表2.4.4 雙向循環(huán)鏈表2.5 一元多項式的存儲和加法運算2.5.1 一元多項式和線性表2.5.2 使用數(shù)組方式2.5.3 使用鏈表方式本章小結(jié)習(xí)題3 棧和隊列3.1 棧3.1.1 棧的定義3.1.2 棧的基本運算3.1.3 棧的順序存儲結(jié)構(gòu)及基本操作3.1.4 棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)及基本操作3.1.5 棧的應(yīng)用3.1.6 棧與遞歸3.2 隊列3.2.l隊列的定義3.2.2 隊列的基本運算3.2.3 隊列的順序存儲結(jié)構(gòu)及基本操作3.2.4 隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)及基本操作3.2.5 隊列的簡單應(yīng)用舉例本章小結(jié)習(xí)題4 串4.1 串的概念4.1.1 串的定義4.1.2 串的存儲結(jié)構(gòu)4.1.3 利用串初始化字符數(shù)組4.1.4 利用二維字符數(shù)組保存存儲串4.1.5 字符串的輸入和輸出4.2 串的運算4.3 串應(yīng)用舉例本章小結(jié)習(xí)題5 數(shù)組和廣義表5.1 數(shù)組的定義5.2 數(shù)組的順序存儲結(jié)構(gòu)5.3 矩陣的壓縮存儲5.3.1 特殊矩陣5.3.2 稀疏矩陣5.4 廣義表5.4.1 廣義表的定義和性質(zhì)5.4.2 廣義表的存儲結(jié)構(gòu)5.5 數(shù)組應(yīng)用舉例本章小結(jié)習(xí)題6 樹和二叉樹6.1 樹的概念6.1.1 樹的定義6.1.2 樹的日常應(yīng)用舉例6.1.3 樹的表示6.1.4 樹的基本術(shù)語6.1.5 樹的性質(zhì)6.2 二叉樹的概念6.2.1 二叉樹的定義6.2.2 二叉樹的性質(zhì)6.3 二叉樹的存儲結(jié)構(gòu)6.3.1 順序存儲結(jié)構(gòu)6.3.2 鏈接存儲結(jié)構(gòu)6.4 二叉樹遍歷6.4.1 二叉樹遍歷的概念6.4.2 叉樹的遞歸遍歷算法6.4.3 二叉樹的非遞歸遍歷算法6.4.4 二叉樹的按層遍歷算法6.5 二叉樹的其他運算6.6 二叉樹運算的程序調(diào)試6.7 哈夫曼樹6.7.1 基本術(shù)語6.7.2 構(gòu)造哈夫曼樹6.7.3 哈夫曼編碼6.7.4 哈夫曼樹運算的程序調(diào)試本章小結(jié)習(xí)題7 圖8 查找9 排序附錄實驗參考文獻
章節(jié)摘錄
數(shù)據(jù)結(jié)構(gòu)(data stmcture)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。數(shù)據(jù)元素間的關(guān)系稱為結(jié)構(gòu)??陀^事物之間存在著各種不同的聯(lián)系,但抽象為數(shù)據(jù)以后再來研究它們具有的共性關(guān)系就單純得多。數(shù)據(jù)結(jié)構(gòu)研究這種關(guān)系的目的是要把數(shù)據(jù)合理、有效地存儲到計算機中進行處理,所以我們的著眼點放在諸如數(shù)據(jù)間的位置關(guān)系、數(shù)據(jù)間是否存在直接或間接的聯(lián)系等方面。例如一個班的學(xué)生名單表中,學(xué)生是一個接著一個排列的,就可以抽象為“一對一的線性結(jié)構(gòu)”,而把它們隨機地記錄在筆記本上時,從位置上看就不存在任何關(guān)系,只是他們同屬于一個班級。又如某單位的上級單位與各個下級單位的關(guān)系、祖輩與后輩的關(guān)系就可以抽象為“一對多的樹形結(jié)構(gòu)”。而諸如某城市中各個公交站點之間的關(guān)系、通訊線路上用戶之間的關(guān)系就可以用“多對多的圖狀結(jié)構(gòu)”來描述。根據(jù)數(shù)據(jù)間的不同特性,通常有4類基本結(jié)構(gòu)。
圖書封面
評論、評分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu) PDF格式下載