A textbook of data structures and algorithms Volume 1 : mastering linear data structures Volume 1 :

Data structures and algorithms is a fundamental course in Computer Science, which enables learners across any discipline to develop the much-needed foundation of efficient programming, leading to better problem solving in their respective disciplines. A Textbook of Data Structures and Algorithms is...

Descripción completa

Detalles Bibliográficos
Otros Autores: Pai, G. A. Vijayalakshmi, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: London, England ; Hoboken, New Jersey : ISTE, Ltd [2023]
Edición:[First edition]
Colección:Computer engineering series (London, England)
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009724222006719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright Page
  • Contents
  • Preface
  • Acknowledgments
  • Chapter 1. Introduction
  • 1.1. History of algorithms
  • 1.2. Definition, structure and properties of algorithms
  • 1.2.1. Definition
  • 1.2.2. Structure and properties
  • 1.3. Development of an algorithm
  • 1.4. Data structures and algorithms
  • 1.5. Data structures - definition and classification
  • 1.5.1. Abstract data types
  • 1.5.2. Classification
  • 1.6. Algorithm design techniques
  • 1.7. Organization of the book
  • Chapter 2. Analysis of Algorithms
  • 2.1. Efficiency of algorithms
  • 2.2. Apriori analysis
  • 2.3. Asymptotic notations
  • 2.4. Time complexity of an algorithm using the O notation
  • 2.5. Polynomial time versus exponential time algorithms
  • 2.6. Average, best and worst case complexities
  • 2.7. Analyzing recursive programs
  • 2.7.1. Recursive procedures
  • 2.7.2. Apriori analysis of recursive functions
  • 2.8. Illustrative problems
  • Chapter 3. Arrays
  • 3.1. Introduction
  • 3.2. Array operations
  • 3.3. Number of elements in an array
  • 3.3.1. One-dimensional array
  • 3.3.2. Two-dimensional array
  • 3.3.3. Multidimensional array
  • 3.4. Representation of arrays in memory
  • 3.4.1. One-dimensional array
  • 3.4.2. Two-dimensional arrays
  • 3.4.3. Three-dimensional arrays
  • 3.4.4. N-dimensional array
  • 3.5. Applications
  • 3.5.1. Sparse matrix
  • 3.5.2. Ordered lists
  • 3.5.3. Strings
  • 3.5.4. Bit array
  • 3.6. Illustrative problems
  • Chapter 4. Stacks
  • 4.1. Introduction
  • 4.2. Stack operations
  • 4.2.1. Stack implementation
  • 4.2.2. Implementation of push and pop operations
  • 4.3. Applications
  • 4.3.1. Recursive programming
  • 4.3.2. Evaluation of expressions
  • 4.4. Illustrative problems
  • Chapter 5. Queues
  • 5.1. Introduction
  • 5.2. Operations on queues
  • 5.2.1. Queue implementation.
  • 5.2.2. Implementation of insert and delete operations on a queue
  • 5.2.3. Limitations of linear queues
  • 5.3. Circular queues
  • 5.3.1. Operations on a circular queue
  • 5.3.2. Implementation of insertion and deletion operations in circular queue
  • 5.4. Other types of queues
  • 5.4.1. Priority queues
  • 5.4.2. Deques
  • 5.5. Applications
  • 5.5.1. Application of a linear queue
  • 5.5.2. Application of priority queues
  • 5.6. Illustrative problems
  • Chapter 6. Linked Lists
  • 6.1. Introduction
  • 6.1.1. Drawbacks of sequential data structures
  • 6.1.2. Merits of linked data structures
  • 6.1.3. Linked lists - structure and implementation
  • 6.2. Singly linked lists
  • 6.2.1. Representation of a singly linked list
  • 6.2.2. Insertion and deletion in a singly linked list
  • 6.3. Circularly linked lists
  • 6.3.1. Representation
  • 6.3.2. Advantages of circularly linked lists over singly linked lists
  • 6.3.3. Disadvantages of circularly linked lists
  • 6.3.4. Primitive operations on circularly linked lists
  • 6.3.5. Other operations on circularly linked lists
  • 6.4. Doubly linked lists
  • 6.4.1. Representation of a doubly linked list
  • 6.4.2. Advantages and disadvantages of a doubly linked list
  • 6.4.3. Operations on doubly linked lists
  • 6.5. Multiply linked lists
  • 6.6. Unrolled linked lists
  • 6.6.1. Retrieval of an element
  • 6.6.2. Insert an element
  • 6.6.3. Delete an element
  • 6.7. Self-organizing lists
  • 6.8. Applications
  • 6.8.1. Addition of polynomials
  • 6.8.2. Sparse matrix representation
  • 6.9. Illustrative problems
  • Chapter 7. Linked Stacks and Linked Queues
  • 7.1. Introduction
  • 7.1.1. Linked stack
  • 7.1.2. Linked queues
  • 7.2. Operations on linked stacks and linked queues
  • 7.2.1. Linked stack operations
  • 7.2.2. Linked queue operations
  • 7.2.3. Algorithms for Push/Pop operations on a linked stack.
  • 7.2.4. Algorithms for insert and delete operations in a linked queue
  • 7.3. Dynamic memory management and linked stacks
  • 7.4. Implementation of linked representations
  • 7.5. Applications
  • 7.5.1. Balancing symbols
  • 7.5.2. Polynomial representation
  • 7.6. Illustrative problems
  • References
  • Index
  • Summaries of other volumes
  • EULA.