数据结构的C++伪码实现 (英文版)
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: (美)吉尔伯格,[美]福尔瓦赞 编著
出 版 社: 人民邮电出版社
出版时间: 2002-1-1字数: 1047000版次: 1页数: 663印刷时间: 2002-1-1开本:印次:纸张: 胶版纸I S B N : 9787115097668包装: 平装编辑推荐
内容简介
本书用C++语言描述和学习数据结构。
全书分为12章,基本覆盖了数据结构的各方面的知识,包括查找、排序、链表、堆栈、队列、递归、树以及图等。书中提供了相应的算法和程序实现,还有许多针对性很强的练习题。附录部分给出了常用的C++语言的知识,对读者进一步实现和应用本书知识提供帮助。全书的最后是部分习题的解答和术语表。
本书适合作为各高等院校计算机专业师生学习数据结构的教材,也可作为专业程序员学习数据结构的参考书籍。
作者简介
目录
1Introduction1
1-1Pseudocode2
Algorithm Header2
Purpose, Conditions, and Return3
Statement Numbers4
Variables4
Algorithm Analysis5
Statement Constructs5
Pseudocode Example6
1-2The Abstract Data Type7
Atomic and Composite Data8
Data Structure8
Abstract Data Type9
1-3A Model for an Abstract Data Type10
ADT Operations11
ADT Data Structure11
ADT Class Templates13
1-4Algorithm Efficiency13
Linear Loops14
Logarithmic Loops14
Nested Loops15
Big-O Notation17
Standard Measures of Efficiency19
Big-O Analysis Examples20
1-5Summary22
1-6Practice Sets23
Exercises23
Problems25
Projects25
2Searching27
2-1List Searches28
Sequential Search28
Variations on Sequential Searches30
Binary Search33
Binary Search Algorithm36
Analyzing Search Algorithms37
2-2C++ Search Algorithms38
Sequential Search in C++38
Binary Search in C++40
Search Example41
2-3Hashed List Searches44
Basic Concepts44
Hashing Methods46
Hashing Algorithm50
2-4Collision Resolution51
Open Addressing53
Linked List Resolution57
Bucket Hashing57
Combination Approaches58
Hash List Example58
2-5Summary62
2-6Practice Sets64
Exercises64
Problems65
Projects65
3Linked Lists67
3-1Linear List Concepts68
Insertion68
Deletion69
Retrieval70
Traversal70
3-2Linked List Concepts70
Nodes71
Linked List Data Structure71
Pointers to Linked Lists73
3-3Linked List Algorithms73
Create List73
Insert Node74
Delete Node78
Search List80
Unordered List Search83
Retrieve Node83
Empty List84
Full List84
List Count85
Traverse List85
Destroy List87
3-4Processing a Linked List88
Add Node90
Remove Node90
Print List91
Testing Insert and Delete Logic92
3-5List Applications93
Append Lists93
Array of Lists95
3-6Complex Linked List Structures97
Circularly Linked Lists97
Doubly Linked Lists98
Multilinked Lists103
Multilinked List Insert104
Multilinked List Delete105
3-7Building a Linked List——C++ Implementation105
Data Structure105
Application Functions106
3-8List Abstract Data Type——Linked List Implementation112
List ADT Declaration113
3-9Summary124
3-10Practice Sets125
Exercises125
Problems127
Projects128
4Stacks135
4-1Basic Stack Operations136
Push136
Pop136
Stack Top137
4-2Stack Linked List Implementation137
Data Structure137
Stack Algorithms139
4-3Stack Applications148
Reversing Data146
Reverse a List146
Convert Decimal to Binary147
Parsing148
Postponement149
Backtracking157
4-4Eight Queens Problem——C++ Implementation163
Main Line Logic164
Get Board Size164
4-5Stack Abstract Data Type Implementation169
Data Structure169
Stack ADT Implementation170
4-6Stack ADT—Array Implementation175
Array Data Structure176
Create Stack Array177
Push Stack Array178
Pop Stack Array178
Stack Top Array179
Empty Stack Array180
Full Stack Array180
Stack Count Array180
Destroy Stack Array181
4-7Summary181
4-8Practice Sets182
Exercises182
Problems183
Projects185
5Queues189
5-1Queue Operations190
Enqueue190
Dequeue190
Queue Front191
Queue Rear191
Queue Example192
5-2Queue Linked List Design192
Data Structure192
Queue Algorithms194
Create Queue194
Enqueue196
Dequeue197
Retrieving Queue Data198
Empty Queue199
Full Queue199
Queue Count200
Destroy Queue200
5-3Queuing Theory200
5-4Queue Applications202
Queue Simulation202
Categorizing Data209
5-5Categorizing Data——C++ Implementation211
Main Line Logic211
Fill Queues212
Print Queues213
Print One Queue214
5-6Queue ADT——Linked List Implementation215
Queue Structure215
Queue ADT Implementation216
5-7Queue ADT——Array Implementation221
Array Queues Implementation222
5-8Summary228
5-9Practice Sets229
Exercises229
Problems231
Projects232
6Recursion237
6-1Factorial——A Case Study238
Recursion Defined238
Iterative Solution239
Recursive Solution239
6-2How Recursion Works240
6-3Designing Recursive Algorithms242
The Design Methodology243
Limitations of Recursion243
Design Implementation——Reverse a Linked List244
6-4Another Case Study——Fibonacci Numbers246
6-5The Towers of Hanoi249
Recursive Towers Of Hanoi250
6-6C++ Implementations of Recursion253
Fibonacci Numbers253
Prefix to Postfix Conversion254
Towers of Hanoi259
6-7Summary260
6-8Practice Sets261
Exercises261
Problems263
Projects264
7Introduction to Trees265
7-1Basic Tree Concepts266
Terminology266
Tree Representation268
7-2Binary Trees270
Properties271
7-3Binary Tree Traversals273
Depth-First Traversals273
Breadth-First Traversals278
7-4Expression Trees280
Infix Traversal280
Postfix Traversal281
Prefix Traversal282
7-5General Trees282
Changing General Tree to Binary Tree282
Insertions into General Trees283
General Tree Deletions285
7-6Huffman Code285
7-7Summary288
7-8Practice Sets290
Exercises293
Problems293
Projects293
8Search Trees294
8-1Binary Search Trees295
Definition295
Operations on Binary Search Trees296
Binary Search Tree Search Algorithms297
8-2AVL Trees306
AVL Balance Factor309
Balancing Trees309
AVL Node Structure314
AVL Delete Algorithm319
Adjusting the Balance Factors323
8-3AVL Tree Implementation324
Data Structure324
Program Design325
Count Words Summary328
8-4AVL Abstract Data Type329
AVL Tree Data Structures330
AVL Tree Functions331
AVL Tree Data Processing342
AVL Tree Utility Functions344
8-5Summary347
8-6Practice Sets348
Exercises348
Problems350
Projects351
9Heaps354
9-1Heap Definition355
9-2Heap Structure355
9-3Basic Heap Algorithms356
ReheapUp356
ReheapDown358
9-4Heap Data Structure360
9-5Heap Algorithms361
ReheapUp361
ReheapDown362
BuildHeap363
InsertHeap364
DeleteHeap365
9-6Heap Applications367
Selection Algorithms367
Priority Queues368
9-7A Heap Program370
Heap Program Design370
Heap Functions375
9-8Summary377
9-9Practice Sets378
Exercises378
Problems380
Projects380
10Multiway Trees383
10-1m-Way Search Trees384
10-2B-Trees385
B-Tree Insertion387
B-Tree Insert Design388
B-Tree Insert Node389
B-Tree Deletion396
Traverse B-Tree407
B-Tree Search410
10-3Simplified B-Trees411
2-3 Tree411
2-3-4 Tree411
10-4B-Tree Variations412
B*Tree412
B+Tree413
10-5Lexical Search Tree413
Tries414
Trie Structure415
10-6B-Tree Abstract Data Type415
Header File415
Utility Functions415
Insert Algorithms423
Delete Algorithms428
10-7Summary434
10-8Practice Sets435
Exercises435
Problems436
Projects436
11Advanced Sorting Concepts438
11-1General Sort Concepts439
Sort Order439
Sort Stability440
Sort Efficiency440
Passes440
11-2Insertion Sorts441
Straight Insertion Sort441
Shell Sort443
Insertion Sort Algorithms447
Insertion Sort Implementation449
11-3Selection Sorts451
Straight Selection Sort451
Selection Sort Algorithms456
Selection Sort Implementation457
11-4Exchange Sorts459
Bubble Sort459
Bubble Sort Algorithm461
Quick Sort462
Exchange Sort Algorithms468
11-5Summary470
Exchange Sort Implementation470
11-6External Sorts474
Merging Ordered Files474
Merging Unordered Files475
The Sorting Process476
Sort Phase Revisited482
11-7Summary484
11-8Practice Sets485
Exercises485
Problems486
Projects486
12Graphs490
12-1Terminology491
12-2Operations492
Add Vertex492
Delete Vertex493
Add Edge493
Delete Edge493
Find Vertex493
Traverse Graph494
12-3Graph Storage Structures497
Adjacency Matrix497
Adjacency List498
12-4Graph Algorithms499
Create Graph500
Insert Vertex500
Delete Vertex502
Insert Arc503
Delete Arc505
Retrieve Vertex506
First Arc507
Depth-First Traversal508
Breadth-First Traversal510
12-5Networks512
Minimum Spanning Tree512
Shortest Path Algorithm517
12-6Abstract Data Type521
Insert Vertex523
Delete Vertex524
Insert Arc525
Delete Arc526
Depth-First Traversal528
Breadth-First Traversal529
12-7Summary531
12-8Practice Sets532
Exercises532
Problems533
Projects534
Appendixes
AASCII Tables537
BStructure Charts542
CProgram Standards and Styles549
DRandom Numbers554
EStandard C++ Libraries559
FC++ Function Prototypes561
GClasses Related to Input and Output569
HThe String Class574
IPointers to Functions584
JInheritance587
KC++ Templates601
LStandard Template Library608
Solutions to Selected Exercises626
Glossary647
Index657
媒体评论