《數據結構教程》

《數據結構教程》

  《數據結構教程》用精練、流暢的語言詳述了數據結構的基本概念、基本思想、基本原理及實際背景。共分十章,內容包括:緒論,線性表,棧和佇列,特殊鍊表和特殊線性表,內、外排序,樹,圖,檢索,檔案。

基本信息

基本信息

編者:黃育潛滕少華
出版社:華中科技大學出版社
頁碼:224頁
數據結構教程數據結構教程

出版日期:1996年
ISBN:7560912850
條形碼:9787560912851
版本:1版
裝幀:平裝
開本:16

內容簡介

《數據結構教程》用精練、流暢的語言詳述了數據結構的基本概念、基本思想、基本原理及實際背景。共分十章,內容包括:緒論,線性表,棧和佇列,特殊鍊表和特殊線性表,內、外排序,樹,圖,檢索,檔案。
書中以大量的例子來突出這樣一個思想:數據結構是算法設計和描述的基礎與工具,並採取了“對象描述、關鍵一步和總體控制”的算法講解模式等多項化解難點的創新作法,在教學中深受學生歡迎。另外,《數據結構教程》採用實用的PASCAL語言作為數據結構和算法的描述工具,這將便於讀者自學,也有利於幫助讀者在今後的實踐中套用所學的知識

目錄

第一章緒論
1.1數據結構和算法
1.2數據的邏輯結構和存儲結構
1.3算法和算法分析
第二章線性表
2.1線性表及其基本運算
2.1.1線性表
2.1.2線性表的基本運算
2.2線性表的順序存儲實現
2.2.1向量——線性表的順序存儲表示
2.2.2插入、刪除與查找算法
2.3套用——多項式相加(順序存儲實現)
2.3.1多項式的壓縮表示及其順序存儲
2.3.2多項式相加
2.4線性表的鏈式存儲實現
2.4.1單鍊表——線性表的鏈式存儲表示
2.4.2單鍊表的插入、刪除與查找
2.4.3關於單鍊表實現的註記
2.5套用——多項式相加(鏈式存儲實現)
2.5.1多項式的鏈式存儲表示
2.5.2多項式的相加
第三章棧和佇列
3.1棧
3.1.1棧的概念
3.1.2棧的基本運算
3.2棧的順序存儲實現
3.2.1順序棧——棧的順序存儲表示
3.2.2基本運算的實現
3.3棧的套用——算術表達式的求值
3.3.1表達式求值與運算符的優先數
3.3.2表達式的中綴表示與後綴表示
3.3.3表達式求值的算法實現
3.4棧的鏈式存儲實現及其套用
3.4.1連結棧——棧的鏈式存儲表示
3.4.2基本運算的實現
3.4.3連結棧的套用——可用空間棧
3.5佇列
3.5.1佇列的概念
3.5.2佇列的基本運算
3.6佇列的實現
3.6.1順序佇列——佇列的順序存儲實現
3.6.2循環(順序)佇列——佇列的另一種順序存儲實現
3.6.3連結佇列——佇列的鏈式存儲實現
3.7佇列的套用——醫院門診部病人管理系統
3.7.1病人管理系統及所需數據結構
3.7.2病人管理系統的實現
第四章特殊鍊表和特殊線性表
4.1帶頭結點的鍊表
4.1.1LWH——帶頭結點的鍊表(ListWithHeadernode)
4.1.2LWH的基本運算
4.1.3頭結點的其它套用和設計
4.2環形鍊表
4.2.1CL——環形鍊表(CircularlinkedList)
4.2.2CL的基本運算
4.2.3CL的套用
4.3雙鍊表
4.3.1DL——雙鍊表(Double—IinkedList)
4.3.2DL的基本運算
4.3.3DL的套用——簡單行編輯器的設計與實現
4.4字元串
4.4.1串的基本概念
4.4.2串的基本運算
4.4.3串的存儲實現
4.5特殊矩陣
4.5.1對稱矩陣
4.5.2三角矩陣
4.5.3稀疏矩陣
第五章內排序
5.1引言
5.2插入排序
5.2.1直接插入排序
5.2.2折半插入排序
5.2.3Shell排序
5.3選擇排序
5.3.1直接選擇排序
5.3.2堆排序
5.4交換排序
5.4.1冒泡排序
5.4.2快速排序
5.5歸併排序
5.6分配排序
第六章樹
6.1樹的基本概念
6.2樹的存儲結構
6.3樹的遍歷
6.4樹的線性表示
6.5二叉樹
6.5.1滿二叉樹完全二叉樹
6.5.2樹轉換成相應二叉樹
6.6二叉樹的遍歷
6.7二叉樹的順序存儲
6.7.1完全二叉樹的順序存儲
6.7.2按前序的存儲形式
6.8穿線二叉樹
6.8.1穿線二叉樹的操作
6.8.2穿線排序
第七章圖
7.1圖的概念
7.2圖的存儲結構
7.2.1鄰接矩陣
7.2.2鄰接表
7.2.3鄰接多重表
7.3圖的遍歷和圖的連通分量
7.3.1深度優先搜尋法
7.3.2廣度優先搜尋法
7.3.3圖的連通分量
7.4生成樹和最小生成樹
7.5最短路徑
7.5.1從一個源點到其它各頂點的最短路徑
7.5.2每一對頂點之間的最短路徑
7.6拓撲排序
第八章檢索
8.1基本概念
8.2線性表的檢索
8.2.1順序檢索法
8.2.2二分檢索
8.2.3分頁塊檢索
8.3二叉排序樹
8.4豐滿樹和平衡樹
8.4.1豐滿樹
8.4.2平衡二叉排序樹
8.5最佳二叉排序樹和Huffman樹
8.5.1擴充二叉樹
8.5.2最佳二叉排序樹
8.5.3Huffman樹
8.6散列表(Hash)檢索
8.6.1散列函式
8.6.2處理衝突的方法
第九章檔案
9.1檔案的基本概念
9.2外存儲器簡介
9.2.1磁帶
9.2.2磁碟
9.2.3分頁塊存儲法
9.3檔案組織概述
9.3.1檔案的邏輯結構
9.3.2檔案的存儲結構
9.3.3檔案上的操作
第十章外排序
10.1外排序概述
10.2磁碟排序
10.2.1多路合併
10.2.2初始順串的生成
10.3磁帶排序
10.3.1平衡合併排序
10.3.2多階段合併排序
參考文獻
……

文摘

3.7佇列的套用——醫院門診部病人管理系統
前面曾說到,在日常工作和生活中,以排隊方式來組織和管理對象,常能簡單而有效地解決問題。計算機套用的實踐也一再證明,以這種方式來組織和管理數據,也常能幫助我們找到簡單且有效的解題算法。下面以醫院門診部的一個病人管理系統為例,說明佇列這一數據結構的套用。
3.7.1病人管理系統及所需數據結構
為簡化起見,假定醫院門診部病人管理工作大致如下進行:當一病人進入門診室時,負責掛號的醫務人員就根據觀察和簡短詢問發給他一個從0(病危)到4(一般)變化的優先數,讓他到相應優先數佇列中去排隊等待。當一醫生空閒時,就根據優先數和等待時間,通知某候診病人去就診。其原則是,優先權高的(即,優先數小的)先考慮,同一優先權中,則先來的先考慮。
根據管理系統的一般組織模式,可以構想本系統將按以下步驟進行工作。
(1)系統初始化
(2)重複以下工作,直到接到退出命令
①顯示系統功能選單;
②用戶打入所選擇的功能號;
③執行功能號對應的程式。
(3)程式結束
就病人管理系統來說,功能選單中至少應包括以下兩功能:
①病人登記;
②確定下一就診病人。
現在,首先來考慮該系統所需的數據結構,即組織數據的方式。容易看出,這樣一個系統中的數據就是一個個病人的姓名、優先數和到達時間。倘若把病人以其到達門診部的先後次序組織到一個佇列中去,則具體的到達時間就不必要了。圖3.8(a)給出了由7名病人按到達次序組成的佇列。不過,這樣的單佇列對按就診原則來確定下一就診病人是很不方便的。此外,它還將導致破壞佇列的操作原則(隊首出隊、隊尾進隊)。解決這一問題的一個簡單方法是,將候診病人組織成多個佇列,即佇列數組,使數組的第i個元素是優先數為i的佇列,每一佇列內部則按到達次序來組織,如,設佇列數組取名為qus,則上述同一組數據,用佇列數組來表示,形如圖3.8(b)。這時,由於優先數已隱含在佇列編號(數組下標)中,故佇列中只須保留病人名就可以了。

數據結構教程(第二版)

作/譯者:唐髮根出版社:北京航空航天大學出版社
出版日期:2005年05月
ISBN:9787810775861[十位:7810775863]
數據結構教程數據結構教程

頁數:372重約:0.590KG
定價:¥36.00

內容提要:

《數據結構教程》(第二版)是1996年出版的第一版的修訂版。修訂版在保持第一版基本框架和特色的基礎上,對其中的內容做了大量的增刪和修改,書中所有算法採用C語言描述。
書中討論了包括線性表、堆疊、佇列、樹和圖在內的各種數據結構和數據檔案的基本概念、邏輯結構與存儲結構,以及在這些結構的基礎上所實施的相關操作。全書仍分為11章。每一章在增加了大量例題解析的同時,還配有豐富的、各種類型的習題,並且提供了體現各章基本內容的上機實踐題。
本書可以作為高等院校計算機專業本科學生的教材,也可以作為報考高等學校計算機專業碩士研究生入學考試的複習用書,同時還可以作為從事計算機系統軟體和套用軟體設計與開發人員的參考資料。

圖書目錄:

第1章緒論
1.1什麼是數據結構
1.2數據結構的發展簡史及其在計算機科學中的地位
1.3算法
1.3.1算法及其性質
1.3.2基本算法
1.3.3算法的描述
1.4算法分析
1.4.1時間複雜度
1.4.2空間複雜度
1.4.3其他方面
習題
第2章線性表
2.1線性表的定義及其基本操作
2.1.1線性表的定義
2.1.2線性表的基本操作
2.2線性表的順序存儲結構
2.2.1順序存儲結構的構造
2.2.2幾種常見操作的實現
2.2.3順序存儲結構小結
2.3線性鍊表及其操作
2.3.1線性鍊表的構造
2.3.2線性鍊表的基本算法
2.4循環鍊表及其操作
2.5雙向鍊表及其操作
2.5.1雙向鍊表的構造
2.5.2雙向鍊表的插入與刪除算法
2.6鍊表的套用舉例
2.6.1鏈式存儲結構下的一元多項式相加
2.6.2列印文本檔案的最後n行
習題
第3章數組
3.1數組的概念
3.2數組的存儲結構
3.3矩陣的壓縮存儲
3.3.1對稱矩陣的壓縮存儲
3.3.2對角矩陣的壓縮存儲
3.4稀疏矩陣的三元組表表示
3.4.1稀疏矩陣的三元組表存儲方法
3.4.2稀疏矩陣的轉置算法
3.4.3稀疏矩陣的相加算法
3.4.4稀疏矩陣的相乘算法
3.5稀疏矩陣的鍊表表示
3.5.1線性鍊表存儲方法
3.5.2帶行指針向量的鍊表存儲方法
3.5.3十字鍊表存儲方法
3.6數組的套用舉例
3.6.1一元多項式的數組表示
3.6.2n階魔方
習題
第4章堆疊和佇列
4.1堆疊的概念及其操作
4.1.1堆疊的定義
4.1.2堆疊的基本操作
4.2堆疊的順序存儲結構
4.2.1順序堆疊的構造
4.2.2順序堆疊的基本算法
4.2.3多個堆疊共享連續空間
4.3堆疊的鏈式存儲結構
……
第5章廣義表
第6章串
第7章樹與二叉樹
第8章圖
第9章檔案及查找
第10章內排序
第11章外排序
附錄上機實踐題
習題答案
參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們