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...
Autor principal: | |
---|---|
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.