Algorithms and Data Structures is written by N. Wirth. This book starts with a chapter on data structure for two reasons. First, one has an intuitive feeling that data precede algorithms: you must have some objects before you can perform operations on them. Second, and this is the more immediate reason, this book assumes that the reader is familiar with the basic notions of computer programming. Traditionally and sensibly, however, introductory programming courses concentrate on algorithms operating on relatively simple structures of data. Hence, an introductory chapter on data structures seems appropriate....

The second chapter treats sorting algorithms. It displays a variety of different methods, all serving the same purpose. Mathematical analysis of some of these algorithms shows the advantages and disadvantages of the methods, and it makes the programmer aware of the importance of analysis in the choice of good solutions for a given problem. The partitioning into methods for sorting arrays and methods for sorting files (often called internal and external sorting) exhibits the crucial influence of data representation on the choice of applicable algorithms and on their complexity. The space allocated to sorting would not be so large were it not for the fact that sorting constitutes an ideal vehicle for illustrating so many principles of programming and situations occurring in most other applications. It often seems that one could compose an entire programming course by deleting examples from sorting only.....

Third Chapter discusses recursive algorithms and fourth chapter is included with dynamic information structures. Finally fifth chapter is for hashing.

Contents

1 Fundamental Data Structures

1.1 Introduction

1.2 The Concept of Data Type

1.3 Primitive Data Types

1.4 Standard Primitive Types

1.4.1 Integer types

1.4.2 The type REAL

1.4.3 The type BOOLEAN

1.4.4 The type CHAR

1.4.5 The type SET

1.5 The Array Structure

1.6 The Record Structure

1.7 Representation of Arrays, Records, and Sets

1.7.1 Representation of Arrays

1.7.2 Representation of Recors

1.7.3 Representation of Sets

1.8 The File (Sequence)

1.8.1 Elementary File Operators

1.8.2 Buffering Sequences

1.8.3 Buffering between Concurrent Processes

1.8.4 Textual Input and Output

1.9 Searching

1.9.1 Linear Search

1.9.2 Binary Search

1.9.3 Table Search

1.9.4 Straight String Search

1.9.5 The Knuth-Morris-Pratt String Search

1.9.6 The Boyer-Moore String Search

Exercises

2 Sorting

2.1 Introduction

2.2 Sorting Arrays

2.2.1 Sorting by Straight Insertion

2.2.2 Sorting by Straight Selection

2.2.3 Sorting by Straight Exchange

2.3 Advanced Sorting Methods

2.3.1 Insertion Sort by Diminishing Increment

2.3.2 Tree Sort

2.3.3 Partition Sort

2.3.4 Finding the Median

2.3.5 A Comparison of Array Sorting Methods

2.4 Sorting Sequences

2.4.1 Straight Merging

2.4.2 Natural Merging

2.4.3 Balanced Multiway Merging

2.4.4 Polyphase Sort

2.4.5 Distribution of Initial Runs

Exercises

6

3 Recursive Algorithms

3.1 Introduction

3.2 When Not to Use Recursion

3.3 Two Examples of Recursive Programs

3.4 Backtracking Algorithms

3.5 The Eight Queens Problem

3.6 The Stable Marriage Problem

3.7 The Optimal Selection Problem

Exercises

4 Dynamic Information Structures

4.1 Recursive Data Types

4.2 Pointers

4.3 Linear Lists

4.3.1 Basic Operations

4.3.2 Ordered Lists and Reorganizing Lists

4.3.3 An Application: Topological Sorting

4.4 Tree Structures

4.4.1 Basic Concepts and Definitions

4.4.2 Basic Operations on Binary Trees

4.4.3 Tree Search and Insertion

4.4.4 Tree Deletion

4.4.5 Analysis of Tree Search and Insertion

4.5 Balanced Trees

4.5.1 Balanced Tree Insertion

4.5.2 Balanced Tree Deletion

4.6 Optimal Search Trees

4.7 B-Trees

4.7.1 Multiway B-Trees

4.7.2 Binary B-Trees

4.8 Priority Search Trees

Exercises

5 Key Transformations (Hashing)

5.1 Introduction

5.2 Choice of a Hash Function

5.3 Collision handling

5.4 Analysis of Key Transformation

Exercises

Appendices

A The ASCII Character Set

B The Syntax of Oberon

Index

You can download or read this data structures and algorithm book from the following link.

Read More/Download

Related Data structures and Algorithms ebooks

The second chapter treats sorting algorithms. It displays a variety of different methods, all serving the same purpose. Mathematical analysis of some of these algorithms shows the advantages and disadvantages of the methods, and it makes the programmer aware of the importance of analysis in the choice of good solutions for a given problem. The partitioning into methods for sorting arrays and methods for sorting files (often called internal and external sorting) exhibits the crucial influence of data representation on the choice of applicable algorithms and on their complexity. The space allocated to sorting would not be so large were it not for the fact that sorting constitutes an ideal vehicle for illustrating so many principles of programming and situations occurring in most other applications. It often seems that one could compose an entire programming course by deleting examples from sorting only.....

Third Chapter discusses recursive algorithms and fourth chapter is included with dynamic information structures. Finally fifth chapter is for hashing.

Contents

1 Fundamental Data Structures

1.1 Introduction

1.2 The Concept of Data Type

1.3 Primitive Data Types

1.4 Standard Primitive Types

1.4.1 Integer types

1.4.2 The type REAL

1.4.3 The type BOOLEAN

1.4.4 The type CHAR

1.4.5 The type SET

1.5 The Array Structure

1.6 The Record Structure

1.7 Representation of Arrays, Records, and Sets

1.7.1 Representation of Arrays

1.7.2 Representation of Recors

1.7.3 Representation of Sets

1.8 The File (Sequence)

1.8.1 Elementary File Operators

1.8.2 Buffering Sequences

1.8.3 Buffering between Concurrent Processes

1.8.4 Textual Input and Output

1.9 Searching

1.9.1 Linear Search

1.9.2 Binary Search

1.9.3 Table Search

1.9.4 Straight String Search

1.9.5 The Knuth-Morris-Pratt String Search

1.9.6 The Boyer-Moore String Search

Exercises

2 Sorting

2.1 Introduction

2.2 Sorting Arrays

2.2.1 Sorting by Straight Insertion

2.2.2 Sorting by Straight Selection

2.2.3 Sorting by Straight Exchange

2.3 Advanced Sorting Methods

2.3.1 Insertion Sort by Diminishing Increment

2.3.2 Tree Sort

2.3.3 Partition Sort

2.3.4 Finding the Median

2.3.5 A Comparison of Array Sorting Methods

2.4 Sorting Sequences

2.4.1 Straight Merging

2.4.2 Natural Merging

2.4.3 Balanced Multiway Merging

2.4.4 Polyphase Sort

2.4.5 Distribution of Initial Runs

Exercises

6

3 Recursive Algorithms

3.1 Introduction

3.2 When Not to Use Recursion

3.3 Two Examples of Recursive Programs

3.4 Backtracking Algorithms

3.5 The Eight Queens Problem

3.6 The Stable Marriage Problem

3.7 The Optimal Selection Problem

Exercises

4 Dynamic Information Structures

4.1 Recursive Data Types

4.2 Pointers

4.3 Linear Lists

4.3.1 Basic Operations

4.3.2 Ordered Lists and Reorganizing Lists

4.3.3 An Application: Topological Sorting

4.4 Tree Structures

4.4.1 Basic Concepts and Definitions

4.4.2 Basic Operations on Binary Trees

4.4.3 Tree Search and Insertion

4.4.4 Tree Deletion

4.4.5 Analysis of Tree Search and Insertion

4.5 Balanced Trees

4.5.1 Balanced Tree Insertion

4.5.2 Balanced Tree Deletion

4.6 Optimal Search Trees

4.7 B-Trees

4.7.1 Multiway B-Trees

4.7.2 Binary B-Trees

4.8 Priority Search Trees

Exercises

5 Key Transformations (Hashing)

5.1 Introduction

5.2 Choice of a Hash Function

5.3 Collision handling

5.4 Analysis of Key Transformation

Exercises

Appendices

A The ASCII Character Set

B The Syntax of Oberon

Index

You can download or read this data structures and algorithm book from the following link.

Read More/Download

Related Data structures and Algorithms ebooks

- Online & downloading versions of Data Structure and Algorithms EBooks
- Free Data Structures and Algorithms Ebooks