Data Structures using C, 2e

A data structure is the logical organization of a set of data items that collectively describe an object. Using the C programming language, Data Structures using C describes how to effectively choose and design a data structure for a given situation or problem. The book has a balance between the f...

Descripción completa

Detalles Bibliográficos
Autor principal: Sharma, A.K (-)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Noida : Pearson India 2013.
Edición:2nd ed
Colección:Always learning.
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009820412406719
Tabla de Contenidos:
  • Cover
  • Contents
  • Preface to the Second Edition
  • 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.
  • 1.17 Recursion
  • 1.17.1 Types of Recursion
  • 1.17.2 Tower of Hanoi
  • 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 : Tree
  • 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
  • 7.6 Weighted Binary Trees and Huffman Algorithm
  • 7.6.1 Huffman Algorithm
  • 7.6.2 Huffman Codes
  • 7.7 Dynamic Dictionary Coding
  • 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 I/O Stream
  • 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
  • Appendix D
  • Trace of Huffman Algorithm
  • Index.