Contents

Preface

About the Author

Chapter 1: Overview of ‘C’

1.1 The History

1.2 Characters Used in ‘C’

1.3 Data Types

1.3.1 Integer Data Type (int)

1.3.2 Character Data Type (char)

1.3.3 The Floating Point (float) Data Type

1.4 C Tokens

1.4.1 Identifiers

1.4.2 Keywords

1.4.3 Variables

1.4.4 Constants

1.5 Structure of a ‘C’ Program

1.5.1 Our First Program

1.6 printf() and scanf() Functions

1.6.1 How to Display Data Using printf() Function

1.6.2 How to Read Data from Keyboard Using scanf()

1.7 Comments

1.8 Escape Sequence (Backslash Character Constants)

1.9 Operators and Expressions

1.9.1 Arithmetic Operators

1.9.2 Relational and Logical Operators

1.9.3 Conditional Operator

1.9.4 Order of Evaluation of Expressions

1.9.5 Some Special Operators

1.9.6 Assignment Operator

1.9.7 Bitwise Shift Operators

1.10 Flow of Control

1.10.1 The Compound Statement

1.10.2 Selective Execution (Conditional Statements)

1.10.3 Repetitive Execution (Iterative Statements)

1.10.4 The exit() Function

1.10.5 Nested Loops

1.10.6 The Goto Statement (Unconditional Branching)

1.11 Input—Output Functions (I/O)

1.11.1 Buffered I/O

1.11.2 Single Character Functions

1.11.3 String-based Functions

1.12 Arrays

1.13 Structures

1.13.1 Defining a Structure in ‘C’

1.13.2 Referencing Structure Elements

1.13.3 Arrays of Structures

1.13.4 Initializing Structures

1.13.5 Assignment of Complete Structures

1.13.6 Nested Structures

1.14 User-defined Data Types

1.14.1 Enumerated Data Types

1.15 Unions

1.16 Functions

1.16.1 Function Prototypes

1.16.2 Calling a Function

1.16.3 Parameter Passing in Functions

1.16.4 Returning Values from Functions

1.16.5 Passing Structures to Functions

Chapter 2: Data Structures and Algorithms: An Introduction

2.1 Overview

2.2 Concept of Data Structures

2.2.1 Choice of Right Data Structures

2.2.2 Types of Data Structures

2.2.3 Basic Terminology Related with Data Structures

2.3 Design of a Suitable Algorithm

2.3.1 How to Develop an Algorithm?

2.3.2 Stepwise Refinement

2.3.3 Using Control Structures

2.4 Algorithm Analysis

2.4.1 Big-Oh Notation

Chapter 3: Arrays: Searching and Sorting

3.1 Introduction

3.2 One-dimensional Arrays

3.2.1 Traversal

3.2.2 Selection

3.2.3 Searching

3.2.4 Insertion and Deletion

3.2.5 Sorting

3.3 Multi-dimensional Arrays

3.4 Representation of Arrays in Physical Memory

3.4.1 Physical Address Computation of Elements of One-dimensional Arrays

3.4.2 Physical Address Computation of Elements of Two-dimensional Arrays

3.5 Applications of Arrays

3.5.1 Polynomial Representation and Operations

3.5.2 Sparse Matrix Representation

Chapter 4: Stacks and Queues

4.1 Stacks

4.1.1 Stack Operations

4.2 Applications of Stacks

4.2.1 Arithmetic Expressions

4.3 Queues

4.3.1 Queue Operations

4.3.2 Circular Queue

4.3.3 Priority Queue

4.3.4 The Deque

Chapter 5: Pointers

5.1 Introduction

5.1.1 The ‘&’ Operator

5.1.2 The ‘*’ Operator

5.2 Pointer Variables

5.2.1 Dangling Pointers

5.3 Pointers and Arrays

5.4 Array of Pointers

5.5 Pointers and Structures

5.6 Dynamic Allocation

5.6.1 Self Referential Structures

Chapter 6: Linked Lists

6.1 Introduction

6.2 Linked Lists

6.3 Operations on Linked Lists

6.3.1 Creation of a Linked List

6.3.2 Travelling a Linked List

6.3.3 Searching a Linked List

6.3.4 Insertion in a Linked List

6.3.5 Deleting a Node from a Linked List

6.4 Variations of Linked Lists

6.4.1 Circular Linked Lists

6.4.2 Doubly Linked List

6.5 The Concept of Dummy Nodes

6.6 Linked Stacks

6.7 Linked Queues

6.8 Comparison of Sequential and Linked Storage

6.9 Solved Problems

Chapter 7: Trees

7.1 Introduction

7.2 Basic Terminology

7.3 Binary Trees

7.3.1 Properties of Binary Trees

7.4 Representation of a Binary Tree

7.4.1 Linear Representation of a Binary Tree

7.4.2 Linked Representation of a Binary Tree

7.4.3 Traversal of Binary Trees

7.5 Types of Binary Trees

7.5.1 Expression Tree

7.5.2 Binary Search Tree

7.5.3 Heap Trees

7.5.4 Threaded Binary Trees

Chapter 8: Graphs

8.1 Introduction

8.2 Graph Terminology

8.3 Representation of Graphs

8.3.1 Array-based Representation of Graphs

8.3.2 Linked Representation of a Graph

8.3.3 Set Representation of Graphs

8.4 Operations of Graphs

8.4.1 Insertion Operation

8.4.2 Deletion Operation

8.4.3 Traversal of a Graph

8.4.4 Spanning Trees

8.4.5 Shortest Path Problem

8.5 Applications of Graphs

Chapter 9: Files

9.1 Data and Information

9.1.1 Data

9.1.2 Information

9.2 File Concepts

9.3 File Organization

9.4 Files in ‘C’

9.5 Files and Streams

9.6 Working with Files Using Stream I/O

9.6.1 Opening of a File

9.6.2 Unformatted File I/O Operations

9.6.3 Formatted File I/O Operations

9.6.4 Reading or Writing Blocks of Data in Files

9.7 Sequential File Organization

9.7.1 Creating a Sequential File

9.7.2 Reading and Searching a Sequential File

9.7.3 Appending a Sequential File

9.7.4 Updating a Sequential File

9.8 Direct File Organization

9.9 Indexed Sequential Organization

9.9.1 Searching a Record

9.9.2 Addition/Deletion of a Record

9.9.3 Storage Devices for Indexed Sequential Files

9.9.4 Multilevel Indexed Files

9.10 Choice of File Organization

9.11 Graded Problems

Chapter 10: Advanced Data Structures

10.1 AVL Trees

10.1.1 Searching an AVL Tree

10.1.2 Inserting a Node in an AVL Tree

10.2 Sets

10.2.1 Representation of Sets

10.2.2 Operations on Sets

10.2.3 Applications of Sets

10.3 Skip Lists

10.4 B-Trees

10.4.1 Searching a Key in a B-Tree

10.4.2 Inserting a Key in a B-Tree

10.4.3 Deleting a Key from a B-Tree

10.4.4 Advantages of B-trees

10.5 Searching by Hashing

10.5.1 Types of Hashing Functions

10.5.2 Requirements for Hashing Algorithms

10.5.3 Overflow Management (Collision Handling)

Appendix A ASCII Codes (Character Sets)

Appendix B Table of Format Specifiers

Appendix C Escape Sequences

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.14.151.45