數據結構:C語言描述(第2版) 面向CS2013计算机专业规划教材·数据结构:C语言描述(第2版)

殷人昆

  • 出版商: 機械工業
  • 出版日期: 2017-03-01
  • 定價: $330
  • 售價: 8.5$281
  • 語言: 簡體中文
  • 頁數: 384
  • 裝訂: 平裝
  • ISBN: 7111559827
  • ISBN-13: 9787111559825
  • 相關分類: C 程式語言
  • 下單後立即進貨 (約4週~6週)

商品描述

本書以專業基礎能力培養為目標,承續電腦程序設計基礎課程,完全遵照教育部電腦科學與技術教學指導委員會關於《高等學校電腦專業人才專業能力構成與培養》的要求編寫而成,旨在培養學生的基本計算思維能力,提高學生的算法設計和程序實現能力,並為學生提高系統開發能力打下良好的基礎。全書共分10章,主要介紹了數據結構基本概念與基本知識、線性表及其基本操作、棧和隊列、字符串、數組和廣義表、樹與二叉樹的概念和應用、圖、查找和排序。本書可以作為電腦科學與技術及相關專業本科生的教材,也可以作為電腦專業考研(碩士、工程碩士、博士)的復習教材,還可以供使用電腦進行系統開發的人員學習使用。

作者簡介

殷人昆,清華大學計算機系教授。1970年清華大學計算數學專業畢業,1980年獲清華大學計算機系工學碩士學位,1985年赴日本東京理科大學做訪問學者,研究方向為軟件工程過程的質量管理和軟件產品的質量評價。主要講授大學本科“數據結構”、“軟件工程”和研究生“軟件工程”、“軟件項目管理”,其中,本科“數據結構”和工程碩士“軟件工程”是清華大學精品課程,此外還主持了教育部-微軟精品課程“數據結構”的建設。
 

目錄大綱

第1章緒論1 
1.1數據結構的概念及分類1 
1.1.1為什麼要學習數據結構1 
1.1.2與數據結構相關的基本術語2 
1.1.3數據結構的分類4 
1.1.4數據結構的存儲結構6 
1.1.5定義在數據結構上的操作7 
1.2使用C語言描述數據結構7 
1.2.1數據類型7 
1.2.2算法的控制結構8 
1.2.3算法的函數結構9 
1.2.4動態存儲分配12 
1.2.5邏輯和關係運算的約定12 
1.2.6輸入與輸出13 
1.3算法和算法設計13 
1.3.1算法的定義和特性13 
1.3.2算法的設計步驟14 
1.3.3算法設計的基本方法15 
1.4算法分析與度量19 
1.4.1算法的評價標準19 
1.4.2算法的時間和空間複雜度度量20 
1.4.3算法的漸近分析23 
小結25 
習題25 


第2章線性表27 
2.1概述27 
2.1 .1線性表的定義和特點27 
2.1.2線性表的主要操作28 
2.2順序表29 
2.2.1順序表的定義和特點29 
2.2.2順序表的結構定義30 
2.2.3順序表主要操作的實現31 
2.2.4順序表主要操作 的性能分析32 
2.2.5順序表的應用舉例33 
2.3單鍊錶34 
2.3.1單鍊錶的定義和特點34 
2.3.2單鍊錶的結構定義35 
2.3.3單鍊錶中的插入與刪除36 
2.3.4帶頭結點的單鍊錶38 
2.3.5單鍊錶的順序訪問與尾遞歸40 
2.3.6單鍊錶的應用舉例42 
2.3.7循環單鍊錶44 
2.3.8雙向鍊錶47 
2.3.9靜態鍊錶51 
2.4順序表與單鍊錶的比較52 
2.5單鍊錶的應用:一元多項式及其運算53 
2.5.1一元多項式的表示53 
2.5.2多項式的結構定義54 
2.5.3多項式的加法56 
2.5.4多項式的乘法57 
小結59 
習題59 


第3章棧和隊列62 
3.1棧62 
3.1.1棧的概念62 
3.1.2順序棧63 
3.1.3鍊式棧67 
3.1.4棧的混洗69 
3.2隊列70 
3.2.1隊列的概念71 
3.2.2循環隊列72 
3.2.3鍊式隊列75 
3.3棧的應用77 
3.3.1數制轉換77 
3.3.2括號匹配78 
3.3.3表達式的計算與優先級處理79 
3.3.4棧與遞歸的實現84 
3.4隊列的應用87 
3.4.1打印楊輝三角形與逐行處理87 
3.4.2電路佈線與兩點 的最短路徑89 
3.5在算法設計中使用遞歸91 
3.5.1漢諾塔問題與分治法91 
3.5.2迷宮問題與回溯法94 
3.6雙端隊列96 
3.6.1雙端隊列的概念97 
3.6.2輸入受限的雙端隊列97 
3.6.3輸出受限的雙端隊列98 
3.6.4雙端隊列的存儲表示98 
3.7優先隊列100 
3.7.1優先隊列的概念100 
3.7.2優先隊列的實現100 
小結101 
習題102 


第4章字符串105 
4.1字符串的概念105 
4.1.1字符串的基本概念105 
4.1.2字符串的初始化和賦值106 
4.1.3 C語言中有關字符串的庫函數107 
4.1.4字符串的自定義操作108 
4.2字符串的實現109 
4.2.1定長順序存儲表示109 
4.2.2堆分配存儲表示110 
4.2.3塊鏈存儲表示112 
4.3字符串的模式匹配113 
4.3.1 BF模式匹配算法113 
4.3.2無回溯的KMP模式匹配算法114 
4.3.3 BM模式匹配算法119 
小結121 
習題121 


第5章多維數組和廣義表123 
5.1數組123 
5.1.1一維數組123 
5.1.2多維數組125 
5.2特殊矩陣126 
5.2.1對稱矩陣的壓縮存 127 
5.2.2三對角矩陣的壓縮存儲128 
5.2.3 w對角矩陣的壓縮存儲129 
5.3稀疏矩陣130 
5.3.1稀疏矩陣的概念130 
5.3.2稀疏矩陣的順序存儲表示130 
5.3.3稀疏矩陣的鏈接存儲表示137 
5.4廣義表140 
5.4.1廣義表的概念140 
5.4.2廣義表的性質141 
5.4.3廣義表的頭尾表示法142 
5.4.4廣義表的擴展線性鍊錶表示145 
5.4.5廣義表的層次表示法146 
5.4.6廣義表的應用舉例:三元多項式的表示148 
小結150 
習題151 


第6章樹與二叉樹153 
6.1樹的基本概念153 
6.1.1樹的定義和術語153 
6.1. 2樹的基本操作155 
6.2二叉樹及其存儲表示156 
6.2.1二叉樹的概念156 
6.2.2二叉樹的性質157 
6.2.3二叉樹的主要操作159 
6.2.4二叉樹的順序存儲表示160 
6.2.5二叉樹的鏈接存儲表示161 
6.3二叉樹的遍歷163 
6.3.1二叉樹遍歷的遞歸算法163 
6.3.2遞歸遍曆算法的應用舉例164 
6.3.3二叉樹遍歷的非遞歸算法167 
6.3.4利用隊列實現二叉樹的層 序遍歷170 
6.3.5二叉樹的計數171 
6.4線索二叉樹173 
6.4.1線索二叉樹的概念173 
6.4.2線索二叉樹的種類174 
6.4.3中序線索二叉樹的建立和遍歷174 
6.4.4先序與後序線索二叉樹176 
6.5樹與森林178 
6.5.1樹的存儲表示178 
6.5.2森林與二叉樹的轉換183 
6.5.3樹與森林的深度優先遍歷184