Data Structures: A Pseudocode Approach with C

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This second edition expands upon the solid, practical foundation established in the first edition of the text. A new four-part organizational structure increases the flexibility of the text, and all material is presented in a straightforward manner accompanied by an array of examples and visual diagrams.

Author(s): Richard F. Gilberg; Behrouz A. Forouzan
Edition: 2
Publisher: Cengage Learning
Year: 2004

Language: English
Pages: 672
Tags: Algorithms

Cover
Title Page
Copyright
Contents
Preface
Part I: Introduction
Chapter 1 Basic Concepts
1.1 Pseudocode
1.2 The Abstract Data Type
1.3 Model for an Abstract Data Type
1.4 ADT Implementations
1.5 Generic Code for ADTs
1.6 Algorithm Efficiency
1.7 Key Terms
1.8 Summary
1.9 Practice Sets
Exercises
Problems
Projects
Chapter 2 Recursion
2.1 Factorial—A Case Study
2.2 Designing Recursive Algorithms
2.3 Recursive Examples
2.4 Key Terms
2.5 Summary
2.6 Practice Sets
Exercises
Problems
Projects
Part II: Linear Lists
Chapter 3 Stacks
3.1 Basic Stack Operations
3.2 Stack Linked List Implementation
3.3 C Language Implementations
3.4 Stack ADT
3.5 Stack Applications
3.6 How Recursion Works
3.7 Key Terms
3.8 Summary
3.9 Practice Sets
Exercises
Problems
Projects
Chapter 4 Queues
4.1 Queue Operations
4.2 Queue Linked List Design
4.3 Queue ADT
4.4 Queuing Theory
4.5 Queue Applications
4.6 Key Terms
4.7 Summary
4.8 Practice Sets
Exercises
Problems
Projects
Chapter 5 General Linear Lists
5.1 Basic Operations
5.2 Implementation
5.3 List ADT
5.4 Application
5.5 Complex Implementations
5.6 Key Terms
5.7 Summary
5.8 Practice Sets
Exercises
Problems
Projects
Part III: Non-Linear Lists
Chapter 6 Introduction to Trees
6.1 Basic Tree Concepts
6.2 Binary Trees
6.3 General Trees
6.4 Key Terms
6.5 Summary
6.6 Practice Sets
Exercises
Problems
Projects
Chapter 7 Binary Search Trees
7.1 Basic Concepts
7.2 BST Operations
7.3 Binary Search Tree ADT
7.4 BST Applications
7.5 Threaded Trees
7.6 Key Terms
7.7 Summary
7.8 Practice Sets
Exercises
Problems
Projects
Chapter 8 AVL Search Trees
8.1 AVL Tree Basic Concepts
8.2 AVL Tree Implementations
8.3 AVL Tree Abstract Data Type
8.4 Application—Count Words
8.5 Key Terms
8.6 Summary
8.7 Practice Sets
Exercises
Problems
Projects
Chapter 9 Heaps
9.1 Basic Concepts
9.2 Heap Implementation
9.3 Heap ADT
9.4 Heap Applications
9.5 Key Terms
9.6 Summary
9.7 Practice Sets
Exercises
Problems
Projects
Chapter 10 Multiway Trees
10.1 M-way Search Trees
10.2 B-trees
10.3 B-tree ADT
10.4 Simplified B-trees
10.5 B-tree Variations
10.6 Lexical Search Tree
10.7 Key Terms
10.8 Summary
10.9 Practice Sets
Exercises
Problems
Projects
Chapter 11 Graphs
11.1 Basic Concepts
11.2 Operations
11.3 Graph Storage Structures
11.4 Graph Algorithms
11.5 Graph ADT
11.6 Networks
11.7 Key Terms
11.8 Summary
11.9 Practice Sets
Exercises
Problems
Projects
Part IV: Sorting and Searching
Chapter 12 Sorting
12.1 Sort Concepts
12.2 Selection Sorts
12.3 Insertion Sorts
12.4 Exchange Sorts
12.5 External Sorts
12.6 Quick Sort Efficiency
12.7 Key Terms
12.8 Summary
12.9 Practice Sets
Exercises
Problems
Projects
Chapter 13 Searching
13.1 List Searches
13.2 Search Implementations
13.3 Hashed List Searches
13.4 Collision Resolution
13.5 Key Terms
13.6 Summary
13.7 Practice Sets
Exercises
Problems
Projects
Appendix A: ASCII Tables
A.1 ASCII Codes (Long Form)
A.2 ASCII Table (Short Form)
Appendix B: Structure Charts
B.1 Structure Chart Symbols
Modules
Reading Structure Charts
Common Modules
Conditional Calls
Exclusive Or
Loops
Conditional Loops
Recursion
Data Flows and Flags
B.2 Structure Chart Rules
Appendix C: Integer and Float Libraries
C.1 limits.h
C.2 float.h
Appendix D: Selected C Libraries
D.1 Function Index
D.2 Type Library
D.3 Math Library
D.4 Standard I/O Library
General I/O
Formatted I/O
Character I/O
File I/O
String I/O
System File Control
D.5 Standard Library
Math Functions
Memory Functions
Program Control
System Communication
Conversion Functions
D.6 String Library
Memory Functions
String Functions
D.7 Time Library
Appendix E: Mathematical Series and Recursive Relations
E.1 Arithmetic Series
E.2 Geometric Series
E.3 Harmonic Series
E.4 Recursive Relations
Appendix F: Array Implementations of Stacks and Queues
F.1 Stack ADT
Array Data Structure
Create Stack
Push Stack
Pop Stack
Stack Top
Empty Stack
Full Stack
Stack Count
Destroy Stack
F.2 Queue ADT
Array Queues Implementation
Create Queue
Enqueue
Dequeue
Queue Front
Queue Rear
Full Queue
Empty Queue
Queue Count
Destroy Queue
Glossary
Index