基本信息
書名:數據結構(C語言版)附光盤
定價:35.00元
作者:嚴蔚敏,吳偉民著
齣版社:清華大學齣版社
齣版日期:2011-11-01
ISBN:9787302147510
字數:
頁碼:
版次:1
裝幀:平裝
開本:16開
商品重量:0.499kg
編輯推薦
內容提要
《數據結構》(C語言版)是為“數據結構”課程編寫的教材,也可作為學習數據結構及其算法的C程序設計的參數教材。
本書的前半部分從抽象數據類型的角度討論各種基本類型的數據結構及其應用;後半部分主要討論查找和排序的各種實現方法及其綜閤分析比較。其內容和章節編排1992年4月齣版的《數據結構》(第二版)基本一緻,但在本書中更突齣瞭抽象數據類型的概念。全書采用類C語言作為數據結構和算法的描述語言。
本書概念錶述嚴謹,邏輯推理嚴密,語言精煉,用詞達意,並有配套齣版的《數據結構題集》(C語言版),便於教學,又便於自學。
本書後附有光盤。光盤內容可在DOS環境下運行的以類C語言描述的“數據結構算法動態模擬輔助教學軟件,以及在Windows環境下運行的以類PASCAL或類C兩種語言描述的“數據結構算法動態模擬輔助教學軟件”。
本書可作為計算機類專業或信息類相關專業的本科或專科教材,也可供從事計算機工程與應用工作的科技工作者參考。
目錄
第1章 緒論
1.1什麼是數據結構
1.2基本概念和術語
1.3抽象數據類型的錶示與實現
1.4算法和算法分析
1.4.1算法
1.4.2算法設計的要求
1.4.3算法效率的度量
1.4.4算法的存儲空間需求
第2章 綫性錶
2.1綫性錶的類型定義
2.2綫性錶的順序錶示和實現
2.3綫性錶的鏈式錶示和實現
2.3.1綫性鏈錶
2.3.2循環鏈錶
2.3.3雙嚮鏈錶
2.4一元多項式的錶示及相加
第3章 棧和隊列
3.1棧
3.1.1抽象數據類型棧的定義
3.1.2棧的錶示和實現
3.2棧的應用舉例
3.2.1數製轉換
3.2.2括號匹配的檢驗
3.2.3行編輯程序
3.2.4迷宮求解
3.2.5錶達式求值
3.3棧與遞歸的實現
3.4隊列
3.4.1抽象數據類型隊列的定義
3.4.2鏈隊列——隊列的鏈式錶示和實現
3.4.3循環隊列——隊列的順序錶示和實現
3.5離散事件模擬
第4章 串
4.1串類型的定義
4.2串的錶示和實現
4.2.1定長順序存儲錶示
4.2.2堆分配存儲錶示
4.2.3串的塊鏈存儲錶示
4.3串的模式匹配算法
4.3.1求子串位置的定位函數Index(S,T,pos)
4.3.2模式匹配的一種改進算法
4.4串操作應用舉例
4.4.1文本編輯
4.4.2建立詞索引錶
第5章 數組和廣義錶
5.1數組的定義
5.2數組的順序錶示和實現
5.3矩陣的壓縮存儲
5.3.1特殊矩陣
5.3.2稀疏矩陣
5.4廣義錶的定義
5.5廣義錶的存儲結構
5.6m元多項式的錶示
5.7廣義錶的遞歸算法
5.7.1求廣義錶的深度
5.7.2復製廣義錶
5.7.3建立廣義錶的存儲結構
第6章 樹和二叉樹
6.1樹的定義和基本術語
6.2二叉樹
6.2.1二叉樹的定義
6.2.2二叉樹的性質
6.2.3二叉樹的存儲結構
6.3遍曆二叉樹和綫索二叉樹
6.3.1遍曆二叉樹
6.3.2綫索二叉樹
6.4樹和森林
6.4.1樹的存儲結構
6.4.2森林與二叉樹的轉換
6.4.3樹和森林的遍曆
6.5樹與等價問題
6.6赫夫曼樹及其應用
6.6.1優二叉樹(赫夫曼樹)
6.6.2赫夫曼編碼
6.7迴溯法與樹的遍曆
6.8樹的計數
第7章 圖
7.1圖的定義和術語
7.2圖的存儲結構
7.2.1數組錶示法
7.2.2鄰接錶
7.2.3十字鏈錶
7.2.4鄰接多重錶
7.3圖的遍曆
7.3.1深度優先搜索
7.3.2廣度優先搜索
7.4圖的連通性問題
7.4.1無嚮圖的連通分量和生成樹
7.4.2有嚮圖的強連通分量
7.4.3小生成樹
7.4.4關節點和重連通分量
7.5有嚮無環圖及其應用
7.5.1拓撲排序
7.5.2關鍵路徑
7.6短路徑
7.6.1從某個源點到其餘各頂點的短路徑
7.6.2每一對頂點之間的短路徑
第8章 動態存儲管理
8.1概述
8.2可利用空間錶及分配方法
8.3邊界標識法
8.3.1可利用空間錶的結構
8.3.2分配算法
8.3.3迴收算法
8.4夥伴係統
8.4.1可利用空間錶的結構
8.4.2分配算法
8.4.3迴收算法
8.5無用單元收集
8.6存儲緊縮
第9章 查找
9.1靜態查找錶
9.1.1順序錶的查找
9.1.2有序錶的查找
9.1.3靜態樹錶的查找
9.1.4索引順序錶的查找
9.2動態查找錶
9.2.1二叉排序樹和平衡二叉樹
9.2.2B樹和B 樹
9.2.3鍵樹
9.3哈希錶
9.3.1什麼是哈希錶
9.3.2哈希函數的構造方法
9.3.3處理衝突的方法
9.3.4哈希錶的查找及其分析
第10章 內部排序
10.1概述
10.2插入排序
10.2.1直接插入排序
10.2.2其他插入排序
10.2.3希爾排序
10.3快速排序
10.4選擇排序
10.4.1簡單選擇排序
10.4.2樹形選擇排序
10.4.3堆排序
10.5歸並排序
10.6基數排序
10.6.1多關鍵字的排序
10.6.2鏈式基數排序
10.7各種內部排序方法的比較討論
第11章 外部排序
11.1外存信息的存取
11.2外部排序的方法
11.3多路平衡歸並的實現
11.4置換一選擇排序
11.5佳歸並樹
第12章 文件
12.1有關文件的基本概念
12.2順序文件
12.3索引文件
12.4ISAM文件和VSAM文件
12.4.1ISAM文件
12.4.2VSAM文件
12.5直接存取文件(散列文件)
12.6多關鍵字文件
12.6.1多重錶文件
12.6.2倒排文件
附錄A 名詞索引
附錄B 函數索引
參考書目
作者介紹
嚴蔚敏,清華大學計算機係教授,長期從事數據結構教學和教材建設。
吳偉民,廣東工業大學計算機學院教授,碩士生導師。廣東計算機學會圖形圖像分會秘書長。長期從事數據結構教學和係列教材建設。
文摘
序言
這本書的封麵設計雖然樸實無華,但卻有一種沉甸甸的知識分量感。拿到手裏,首先映入眼簾的是那熟悉的“數據結構”字樣,瞬間勾起瞭我大學時代埋頭苦讀的迴憶。嚴蔚敏和吳偉民這幾個名字,對於任何一位學習過計算機科學的中國學生來說,都如雷貫耳。這不僅僅是一本書,更像是一代人的計算機啓濛聖經。我記得當年為瞭啃下其中的某個算法,常常是抱著它在圖書館一坐就是一下午,甚至通宵達旦。光盤的附贈,在那個時代可是相當有吸引力的附加值,它意味著不僅僅是理論的講解,更有實際的代碼示例和可能的測試用例,這對於理解抽象的概念至關重要。這本書的語言風格,雖然有些年代感,但非常嚴謹和清晰,沒有過多花哨的辭藻,直擊核心。作者們對每一個概念的解釋都力求到位,對算法的分析更是細緻入微,從時間復雜度和空間復雜度的角度,把每個算法的優劣分析得淋灕盡緻。即使是初學者,也能在反復閱讀中逐漸掌握數據結構的核心思想。它不僅僅是關於“是什麼”,更是關於“為什麼”和“怎麼做”。這本書帶給我的,不僅僅是知識的積纍,更是一種嚴謹的治學態度和解決問題的思維方式。每一次翻開它,都像是在與一位經驗豐富的老師對話,指引我穿梭在算法的海洋中。
評分拿到這本書的第一個感覺,就是它的“厚重感”。不僅僅是紙張的厚度,更是內容上的厚重。嚴蔚敏和吳偉民老師的著作,在學術界享有盛譽,而這本《數據結構(C語言版)》更是其中的佼佼者。我記得在大學期間,這本書就是我們數據結構課程的標準教材。書中的內容,從數組、鏈錶、棧、隊列,到樹、圖,再到查找和排序算法,幾乎涵蓋瞭數據結構領域的全部經典內容。作者們的講解風格非常嚴謹,邏輯性極強。每一個概念的引入,都力求清晰,每一個算法的推導,都力求嚴密。C語言的實現,更是將抽象的理論具象化,讓學習者能夠通過代碼來加深理解。我曾經花費瞭大量的時間去理解書中的遞歸算法,特彆是那些涉及到樹和圖的遞歸實現。作者在書中對遞歸的講解,層層遞進,輔以清晰的圖示,讓我最終能夠理解遞歸的精髓。光盤的附贈,在當時絕對是極具吸引力的。我記得我小心翼翼地將光盤裏的代碼復製到自己的電腦上,然後一遍又一遍地運行和調試。這種實踐的鍛煉,讓我在理論學習之外,獲得瞭寶貴的編程經驗。這本書帶給我的,不僅僅是知識,更是一種學習方法和科學思維的啓濛。
評分我購買這本書的初衷,是因為在一次項目開發中,我遇到瞭一個性能瓶頸,而經過排查,發現問題的根源在於對某個數據結構的理解不夠深入,導緻選擇瞭低效的實現方案。在朋友的推薦下,我選擇瞭這本由嚴蔚敏和吳偉民老師編寫的《數據結構(C語言版)》。收到書後,我首先被其內容的翔實所震撼。書中對各種數據結構的描述,從抽象概念到具體實現,都進行瞭詳盡的講解。尤其是在二叉樹、圖等章節,作者對遍曆、搜索、排序等算法的講解,不僅給齣瞭理論描述,還配以C語言的實現代碼,並且對代碼的每一個關鍵部分都進行瞭注釋,這對於我這樣需要快速上手解決實際問題的讀者來說,極大地節省瞭時間和精力。光盤的價值也在這時得到瞭體現。我下載瞭光盤中的代碼,然後結閤書本內容進行學習。我嘗試著在自己的開發環境中編譯和運行這些代碼,並對其中的一些算法進行瞭性能測試。通過與書本中的理論分析進行對比,我更加深刻地理解瞭不同算法在時間和空間上的效率差異。這本書讓我重新審視瞭數據結構在軟件開發中的重要性,也為我今後的開發打下瞭堅實的基礎。它不僅僅是一本教材,更是一本實用的技術參考書,能夠幫助開發者在麵對實際問題時,找到最優的解決方案。
評分閱讀這本《數據結構(C語言版)》的體驗,是一種迴歸本源、紮實學習的感覺。在如今這個信息爆炸的時代,我們常常被各種速成班、技巧分享所吸引,而這本書,卻帶領我迴到瞭最基礎、最核心的計算機科學領域。作者們對數據結構的講解,沒有絲毫的浮誇,而是以一種近乎“笨拙”的嚴謹,將每一個概念都剖析得淋灕盡緻。我特彆喜歡書中對“復雜度分析”的講解。在許多教材中,這部分內容可能會被一帶而過,但在這本書中,它被放在瞭非常重要的位置。作者們用清晰的數學語言,解釋瞭如何分析算法的時間復雜度和空間復雜度,以及這些復雜度對於實際應用的重要性。這讓我能夠更加深刻地理解,為什麼某些算法在特定場景下錶現優異,而另一些則會成為性能的瓶頸。C語言的實現,也是這本書的一大亮點。書中提供的代碼,清晰、簡潔,並且具有很強的可讀性。我曾經嘗試著去修改書中的代碼,比如對某個排序算法進行優化,或者實現書中未曾提及的某個變種算法。這個過程讓我不僅鞏固瞭對數據結構的理解,也提升瞭自己的編程能力。光盤的價值,也顯而易見。它為我提供瞭一個動手實踐的平颱,讓我能夠親身感受算法的運行,從而將理論知識轉化為實際技能。
評分這本《數據結構(C語言版)》給我留下的最深刻印象,莫過於其係統性和深入性。不同於市麵上一些泛泛而談的教材,它對數據結構的概念進行瞭非常細緻的拆解和闡述。從最基礎的綫性錶,到復雜的圖和樹,每一個章節的過渡都顯得非常自然,仿佛作者精心鋪設瞭一條通往數據結構殿堂的階梯,引導讀者一步步攀登。C語言作為載體,也極大地增強瞭理論的實踐性。書中提供的C語言代碼實現,不是那種僅僅為瞭演示而存在的“樣闆代碼”,而是真正能夠體現算法精髓、並且邏輯清晰、易於理解的代碼。我曾經花費大量時間去調試書中的代碼,並嘗試對其進行修改和擴展,這個過程極大地加深瞭我對算法原理的理解。光盤的附贈,無疑是錦上添花。我記得當年拿到的時候,迫不及待地將光盤內容復製到電腦上,然後對照書本,一步步地運行和分析。這種“理論與實踐相結閤”的學習模式,對於我這樣需要通過動手來鞏固知識的學習者來說,簡直是完美契閤。書中關於復雜度分析的部分,更是讓我領略到瞭算法的魅力。如何用最少的資源解決問題,如何在海量數據中快速檢索,這些都是通過嚴謹的數學分析和算法設計來實現的。這本書讓我明白瞭,數據結構不僅僅是存儲數據的方式,更是高效處理數據、解決復雜問題的基石。
評分說實話,剛拿到這本《數據結構(C語言版)》的時候,我有些猶豫。畢竟,市麵上關於數據結構的圖書琳琅滿目,如何選擇一本真正適閤自己的,確實是個挑戰。然而,當翻開書頁,我便被打消瞭疑慮。這本書的排版清晰,圖文並茂,雖然是C語言版,但作者並沒有刻意去堆砌晦澀難懂的代碼,而是將理論知識與代碼實現巧妙地融閤在一起。我最喜歡的部分是關於樹和圖的章節。作者對各種遍曆算法(如前序、中序、後序、層序)的講解,配以清晰的圖示和C語言代碼,讓我能夠非常直觀地理解它們的執行過程。尤其是對於圖的深度優先搜索(DFS)和廣度優先搜索(BFS),書中提供的實現邏輯非常精妙,而且對每一步操作都進行瞭詳細的解釋,讓我能夠清晰地看到它們在不同場景下的應用。光盤的附贈,更是為我提供瞭一個絕佳的學習平颱。我下載瞭光盤中的源代碼,然後自己動手去實現和調試。這個過程讓我不僅鞏固瞭書本上的知識,還學會瞭如何將抽象的算法轉化為具體的程序。我曾經嘗試著修改書中的代碼,加入一些自己的想法,這個過程讓我收獲良多。總而言之,這本書是一本非常優秀的學習資料,它能夠幫助讀者深入理解數據結構的核心概念,並掌握用C語言實現這些概念的方法。
評分這本書帶給我的,是一種“紮實”的學習體驗。在當今充斥著碎片化知識的時代,能夠靜下心來,深入鑽研一本如此經典的著作,本身就是一種難得的體驗。嚴蔚敏和吳偉民老師的著述,以其嚴謹的邏輯和清晰的講解,成為瞭無數計算機科學學習者的啓濛。我特彆欣賞書中對“二叉樹”的講解。作者們不僅詳細介紹瞭二叉樹的定義、性質,還對各種遍曆算法(前序、中序、後序、層序)進行瞭深入的剖析,並提供瞭C語言的實現。我記得當年為瞭理解這些遍曆算法,我曾反復對照書中的圖示和代碼,一遍遍地在腦海中模擬算法的執行過程。C語言的實現,在這裏起到瞭至關重要的作用。它將抽象的理論具象化,讓學習者能夠通過代碼來驗證自己的理解。我曾經嘗試著去修改書中的代碼,比如實現一個平衡二叉樹,或者對二叉查找樹進行優化。這個過程讓我不僅鞏固瞭對書本知識的理解,還極大地提升瞭自己的編程能力。光盤的附贈,更是為我的學習提供瞭極大的便利。我下載瞭光盤中的源代碼,然後進行大量的實踐。這種“理論與實踐相結閤”的學習模式,讓我能夠更全麵、更深入地掌握數據結構的核心概念。
評分我一直認為,一本好的技術書籍,不僅要傳遞知識,更要培養一種解決問題的思維方式。而這本《數據結構(C語言版)》,恰恰做到瞭這一點。它不僅僅是簡單地羅列各種數據結構和算法,而是引導讀者去思考,為什麼需要這些結構?它們在解決問題時有什麼優勢?如何選擇最閤適的結構?書中對“時間復雜度和空間復雜度”的深入講解,就是這種思維方式的體現。作者們用嚴謹的數學分析,讓我們看到算法的效率是如何被衡量的,以及如何在效率和實現復雜度之間做齣權衡。C語言的實現,為這種思維方式提供瞭實踐的土壤。書中提供的代碼,不僅僅是“拿來主義”,更是作者們對算法思想的直接體現。我曾經嘗試著去修改書中的代碼,比如對某個算法進行改進,或者將書中介紹的算法應用於一個實際的小項目中。這個過程讓我深刻體會到,掌握瞭數據結構和算法,就如同擁有瞭一把解決復雜問題的鑰匙。光盤的價值,更是毋庸置疑。它讓我能夠跳齣書本的束縛,進行更深入的實踐和探索。我下載瞭光盤中的代碼,然後進行大量的實驗。這種“讀萬捲書,行萬裏路”的學習方式,是我掌握數據結構的關鍵。
評分這本書,在我學習計算機科學的道路上,扮演瞭“引路人”的角色。在初識數據結構時,我曾感到茫然和睏惑,而嚴蔚敏和吳偉民老師的這本著作,就像一盞明燈,照亮瞭我前進的方嚮。書中對各種數據結構的講解,從最基礎的綫性結構到復雜的非綫性結構,都做到瞭深入淺齣。我印象最深的是對“遞歸”的講解。在很多教材中,遞歸的概念可能顯得抽象難懂,但在本書中,作者們通過生動的比喻和清晰的圖示,將遞歸的思想層層剝開,讓我最終能夠理解其精髓。C語言的實現,也是這本書的一大特色。書中提供的代碼,不僅僅是為瞭演示算法,更是為瞭教學。每一行代碼都經過精心設計,邏輯清晰,並且有詳細的注釋,讓學習者能夠輕鬆地理解代碼的每一部分是如何工作的。我曾經花費大量時間去研究書中關於“圖”的章節,特彆是對各種圖的遍曆算法,如DFS和BFS。作者們對這些算法的講解,非常細緻,並且提供瞭多種實現方式,讓我能夠從不同的角度去理解它們。光盤的附贈,更是為我提供瞭一個寶貴的實踐機會。我下載瞭光盤中的代碼,然後自己動手去實現和調試。這個過程讓我不僅鞏固瞭書本上的知識,還學會瞭如何將抽象的算法轉化為具體的程序。
評分這本書給我的感覺,就像是我的一個“秘密武器”。在學習數據結構的過程中,我曾經嘗試過很多其他的教材,但總覺得要麼過於理論化,要麼過於偏重代碼實現而忽略瞭原理。直到我遇到瞭這本《數據結構(C語言版)》。這本書的獨特之處在於,它在講解每一個數據結構和算法時,都非常注重對“為什麼”的解釋。比如,在介紹鏈錶時,它不僅僅告訴你鏈錶是什麼,更會深入分析它相比於數組的優勢和劣勢,以及在什麼場景下更適閤使用鏈錶。這種深入的思考方式,讓我能夠從更宏觀的角度去理解數據結構。C語言作為載體,也讓學習過程更加充實。書中提供的代碼實現,每一個函數、每一個循環、每一個條件判斷,都顯得那麼自然而然,仿佛是作者在用C語言的語言,將數據結構的精髓娓娓道來。我特彆欣賞書中對於算法復雜度分析的部分。作者用簡潔明瞭的語言,解釋瞭時間復雜度和空間復雜度的概念,並且對各種算法的復雜度進行瞭詳細的分析。這讓我能夠清晰地看到不同算法的效率差異,從而在實際開發中做齣更明智的選擇。光盤中的內容,更是為我打開瞭另一扇門。我下載瞭裏麵的代碼,然後進行實踐。我發現,將書本上的理論與實際代碼結閤起來,學習效果會成倍提升。這本書讓我明白瞭,學習數據結構不僅僅是為瞭應付考試,更是為瞭掌握一門解決問題的核心技能。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有