Data structures using C++
By: D. S. Malik
Edition: 2nd ed.
Publisher: Course Technology/Cengage Learning India
Published: 2012
Place of publication: New Delhi
Language: eng
Number of pages: 912
ISBN-13: 9788131518236
Subjects: C++ (Computer program language); C++ (Lenguaje de programación); Data structures (Computer science); Estructura de datos (Ordenadores)
Notes: Índice analítico: p. 879-912.

Índice abreviado: 1. Software engineering principles and C++ classes 2. Object-oriented design (OOD) and C++ 3. Pointers and Array-Based lists 4. Standard template library (STL) I 5. Linked lists 6. Recursion 7. Stacks 8. Queues 9. Searching and Hashing Algorithms 10. Sorting Algorithms 11. Binary Trees and B-Trees 12. Graphs 13. Standard template library (STL) II. Appendix A: Reserved words B: Operator precedence C: Character sets D: Operator overloading E: Header files F: Additional C++ topics G: C++ for Java programmers H: References I: Answers to Odd-Numbered exercises.

p. 857.
Table of contents: title: Preface
pagenum: xxiii; label: Chapter 1
title: Software Engineering Principles and C++ Classes
pagenum: 1; title: Software Life Cycle
pagenum: 2; title: Software Development Phase
pagenum: 3; title: Analysis
pagenum: 3; title: Design
pagenum: 3; title: Implementation
pagenum: 5; title: Testing and Debugging
pagenum: 7; title: Algorithm Analysis: The Big-O Notation
pagenum: 8; title: Classes
pagenum: 17; title: Constructors
pagenum: 21; title: Unified Modeling Language Diagrams
pagenum: 22; title: Variable (Object) Declaration
pagenum: 23; title: Accessing Class Members
pagenum: 24; title: Implementation of Member Functions
pagenum: 25; title: Reference Parameters and Class Objects (Variables)
pagenum: 30; title: Assignment Operator and Classes
pagenum: 31; title: Class Scope
pagenum: 32; title: Functions and Classes
pagenum: 32; title: Constructors and Default Parameters
pagenum: 32; title: Destructors
pagenum: 33; title: Structs
pagenum: 33; title: Data Abstraction, Classes, and Abstract Data Types
pagenum: 33; title: Programming Example: Fruit Juice Machine
pagenum: 38; title: Identifying Classes, Objects, and Operations
pagenum: 48; title: Quick Review
pagenum: 49; title: Exercises
pagenum: 51; title: Programming Exercises
pagenum: 57; label: Chapter 2
title: Object-Oriented Design (OOD) and C++
pagenum: 59; title: Inheritance
pagenum: 60; title: Redefining (Overriding) Member Functions of the Base Class
pagenum: 63; title: Constructors of Derived and Base Classes
pagenum: 69; title: Header File of a Derived Class
pagenum: 75; title: Multiple Inclusions of a Header File
pagenum: 76; title: Protected Members of a Class
pagenum: 78; title: Inheritance as Public, Protected, or Private
pagenum: 78; title: Composition
pagenum: 79; title: Polymorphism: Operator and Function Overloading
pagenum: 84; title: Operator Overloading
pagenum: 85; title: Why Operator Overloading Is Needed
pagenum: 85; title: Operator Overloading (continued)
pagenum: 86; title: Syntax for Operator Functions
pagenum: 86; title: Overloading an Operator: Some Restrictions
pagenum: 87; title: The Pointer this
pagenum: 87; title: Friend Functions of Classes
pagenum: 91; title: Operator Functions as Member Functions and Nonmember Functions
pagenum: 94; title: Overloading Binary Operators
pagenum: 95; title: Overloading the Stream Insertion (<<) and Extraction (>>) Operators
pagenum: 98; title: Operator Overloading: Member Versus Nonmember
pagenum: 102; title: Programming Example: Complex Numbers
pagenum: 103; title: Function Overloading
pagenum: 108; title: Templates
pagenum: 108; title: Function Templates
pagenum: 109; title: Class Templates
pagenum: 111; title: Header File and Implementation File of a Class Template
pagenum: 112; title: Quick Review
pagenum: 113; title: Exercises
pagenum: 115; title: Programming Exercises
pagenum: 124; label: Chapter 3
title: Pointers and Array-Based Lists
pagenum: 131; title: The Pointer Data Type and Pointer Variables
pagenum: 132; title: Declaring Pointer Variables
pagenum: 132; title: Address of Operator (&)
pagenum: 133; title: Dereferencing Operator (*)
pagenum: 133; title: Pointers and Classes
pagenum: 137; title: Initializing Pointer Variables
pagenum: 138; title: Dynamic Variables
pagenum: 138; title: Operator new
pagenum: 138; title: Operator delete
pagenum: 139; title: Operations on Pointer Variables
pagenum: 145; title: Dynamic Arrays
pagenum: 147; title: Array Name: A Constant Pointer
pagenum: 148; title: Functions and Pointers
pagenum: 149; title: Pointers and Function Return Values
pagenum: 150; title: Dynamic Two-Dimensional Arrays
pagenum: 150; title: Shallow vs. Deep Copy and Pointers
pagenum: 153; title: Classes and Pointers: Some Peculiarities
pagenum: 155; title: Destructor
pagenum: 155; title: Assignment Operator
pagenum: 157; title: Copy Constructor
pagenum: 159; title: Inheritance, Pointers, and Virtual Functions
pagenum: 162; title: Classes and Virtual Destructors
pagenum: 168; title: Abstract Classes and Pure Virtual Functions
pagenum: 169; title: Array-Based Lists
pagenum: 170; title: Copy Constructor
pagenum: 180; title: Overloading the Assignment Operator
pagenum: 180; title: Search
pagenum: 181; title: Insert
pagenum: 182; title: Remove
pagenum: 183; title: Time Complexity of List Operations
pagenum: 183; title: Programming Example: Polynomial Operations
pagenum: 187; title: Quick Review
pagenum: 194; title: Exercises
pagenum: 197; title: Programming Exercises
pagenum: 204; label: Chapter 4
title: Standard Template Library (STL) I
pagenum: 209; title: Components of the STL
pagenum: 210; title: Container Types
pagenum: 211; title: Sequence Containers
pagenum: 211; title: Sequence Container: vector
pagenum: 211; title: Declaring an Iterator to a Vector Container
pagenum: 216; title: Containers and the Functions begin and end
pagenum: 217; title: Member Functions Common to All Containers
pagenum: 220; title: Member Functions Common to Sequence Containers
pagenum: 222; title: The copy Algorithm
pagenum: 223; title: ostream Iterator and Function copy
pagenum: 225; title: Sequence Container: deque
pagenum: 227; title: Iterators
pagenum: 231; title: Types of Iterators
pagenum: 232; title: Input Iterators
pagenum: 232; title: Output Iterators
pagenum: 232; title: Forward Iterators
pagenum: 233; title: Bidirectional Iterators
pagenum: 234; title: Random Access Iterators
pagenum: 234; title: Stream Iterators
pagenum: 237; title: Programming Example: Grade Report
pagenum: 238; title: Quick Review
pagenum: 254; title: Exercises
pagenum: 256; title: Programming Exercises
pagenum: 259; label: Chapter 5
title: Linked Lists
pagenum: 265; title: Linked Lists
pagenum: 266; title: Linked Lists: Some Properties
pagenum: 267; title: Item Insertion and Deletion
pagenum: 270; title: Building a Linked List
pagenum: 274; title: Linked List as an ADT
pagenum: 278; title: Structure of Linked List Nodes
pagenum: 279; title: Member Variables of the class linkedListType
pagenum: 280; title: Linked List Iterators
pagenum: 280; title: Default Constructor
pagenum: 286; title: Destroy the List
pagenum: 287; title: Initialize the List
pagenum: 287; title: Print the List
pagenum: 287; title: Length of a List
pagenum: 287; title: Retrieve the Data of the First Node
pagenum: 288; title: Retrieve the Data of the Last Node
pagenum: 288; title: Begin and End
pagenum: 288; title: Copy the List
pagenum: 289; title: Destructor
pagenum: 290; title: Copy Constructor
pagenum: 290; title: Overloading the Assignment Operator
pagenum: 291; title: Unordered Linked Lists
pagenum: 292; title: Search the List
pagenum: 293; title: Insert the First Node
pagenum: 294; title: Insert the Last Node
pagenum: 294; title: Header File of the Unordered Linked List
pagenum: 298; title: Ordered Linked Lists
pagenum: 300; title: Search the List
pagenum: 301; title: Insert a Node
pagenum: 302; title: Insert First and Insert Last
pagenum: 305; title: Delete a Node
pagenum: 306; title: Header File of the Ordered Linked List
pagenum: 307; title: Doubly Linked Lists
pagenum: 310; title: Default Constructor
pagenum: 313; title: isEmptyList
pagenum: 313; title: Destroy the List
pagenum: 313; title: Initialize the List
pagenum: 314; title: Length of the List
pagenum: 314; title: Print the List
pagenum: 314; title: Reverse Print the List
pagenum: 315; title: Search the List
pagenum: 315; title: First and Last Elements
pagenum: 316; title: STL Sequence Container: list
pagenum: 321; title: Linked Lists with Header and Trailer Nodes
pagenum: 325; title: Circular Linked Lists
pagenum: 326; title: Programming Example: Video Store
pagenum: 327; title: Quick Review
pagenum: 343; title: Exercises
pagenum: 344; title: Programming Exercises
pagenum: 348; label: Chapter 6
title: Recursion
pagenum: 355; title: Recursive Definitions
pagenum: 356; title: Direct and Indirect Recursion
pagenum: 358; title: Infinite Recursion
pagenum: 359; title: Problem Solving Using Recursion
pagenum: 359; title: Largest Element in an Array
pagenum: 360; title: Print a Linked List in Reverse Order
pagenum: 363; title: Fibonacci Number
pagenum: 366; title: Tower of Hanoi
pagenum: 369; title: Converting a Number from Decimal to Binary
pagenum: 372; title: Recursion or Iteration?
pagenum: 375; title: Recursion and Backtracking: 8-Queens Puzzle
pagenum: 376; title: Backtracking
pagenum: 377; title: n-Queens Puzzle
pagenum: 377; title: Backtracking and the 4-Queens Puzzle
pagenum: 378; title: 8-Queens Puzzle
pagenum: 379; title: Recursion, Backtracking, and Sudoku
pagenum: 383; title: Quick Review
pagenum: 386; title: Exercises
pagenum: 387; title: Programming Exercises
pagenum: 390; label: Chapter 7
title: Stacks
pagenum: 395; title: Stacks
pagenum: 396; title: Implementation of Stacks as Arrays
pagenum: 400; title: Initialize Stack
pagenum: 403; title: Empty Stack
pagenum: 404; title: Full Stack
pagenum: 404; title: Push
pagenum: 404; title: Return the Top Element
pagenum: 405; title: Pop
pagenum: 405; title: Copy Stack
pagenum: 406; title: Constructor and Destructor
pagenum: 407; title: Copy Constructor
pagenum: 407; title: Overloading the Assignment Operator (=)
pagenum: 408; title: Stack Header File
pagenum: 408; title: Programming Example: Highest GPA
pagenum: 411; title: Linked Implementation of Stacks
pagenum: 415; title: Default Constructor
pagenum: 418; title: Empty Stack and Full Stack
pagenum: 418; title: Initialize Stack
pagenum: 418; title: Push
pagenum: 419; title: Return the Top Element
pagenum: 420; title: Pop
pagenum: 421; title: Copy Stack
pagenum: 422; title: Constructors and Destructors
pagenum: 423; title: Overloading the Assignment Operator (=)
pagenum: 423; title: Stack as Derived from the class unorderedLinkedList
pagenum: 426; title: Application of Stacks: Postfix Expressions Calculator
pagenum: 428; title: Removing Recursion: Nonrecursive Algorithm to Print a Linked List Backward
pagenum: 438; title: STL class stack
pagenum: 440; title: Quick Review
pagenum: 442; title: Exercises
pagenum: 443; title: Programming Exercises
pagenum: 447; label: Chapter 8
title: Queues
pagenum: 451; title: Queue Operations
pagenum: 452; title: Implementation of Queues as Arrays
pagenum: 454; title: Empty Queue and Full Queue
pagenum: 460; title: Initialize Queue
pagenum: 461; title: Front
pagenum: 461; title: Back
pagenum: 461; title: Add Queue
pagenum: 462; title: Delete Queue
pagenum: 462; title: Constructors and Destructors
pagenum: 462; title: Linked Implementation of Queues
pagenum: 463; title: Empty and Full Queue
pagenum: 465; title: Initialize Queue
pagenum: 466; title: addQueue, front, back, and deleteQueue Operations
pagenum: 466; title: Queue Derived from the class unorderedLinkedListType
pagenum: 469; title: STL class queue (Queue Container Adapter)
pagenum: 469; title: Priority Queues
pagenum: 471; title: STL class priority queue
pagenum: 472; title: Application of Queues: Simulation
pagenum: 472; title: Designing a Queuing System
pagenum: 473; title: Customer
pagenum: 474; title: Server
pagenum: 477; title: Server List
pagenum: 481; title: Waiting Customers Queue
pagenum: 484; title: Main Program
pagenum: 486; title: Quick Review
pagenum: 490; title: Exercises
pagenum: 491; title: Programming Exercises
pagenum: 495; label: Chapter 9
title: Searching and Hashing Algorithms
pagenum: 497; title: Search Algorithms
pagenum: 498; title: Sequential Search
pagenum: 499; title: Ordered Lists
pagenum: 501; title: Binary Search
pagenum: 502; title: Insertion into an Ordered List
pagenum: 506; title: Lower Bound on Comparison-Based Search Algorithms
pagenum: 508; title: Hashing
pagenum: 509; title: Hash Functions: Some Examples
pagenum: 512; title: Collision Resolution
pagenum: 512; title: Open Addressing
pagenum: 512; title: Deletion: Open Addressing
pagenum: 519; title: Hashing: Implementation Using Quadratic Probing
pagenum: 521; title: Chaining
pagenum: 523; title: Hashing Analysis
pagenum: 524; title: Quick Review
pagenum: 525; title: Exercises
pagenum: 527; title: Programming Exercises
pagenum: 530; label: Chapter 10
title: Sorting Algorithms
pagenum: 534; title: Sorting Algorithms
pagenum: 534; title: Selection Sort: Array-Based Lists
pagenum: 539; title: Insertion Sort: Array-Based Lists
pagenum: 540; title: Insertion Sort: Linked List-Based Lists
pagenum: 544; title: Analysis: Insertion Sort
pagenum: 548; title: Shellsort
pagenum: 549; title: Lower Bound on Comparison-Based Sort Algorithms
pagenum: 551; title: Quicksort: Array-Based Lists
pagenum: 552; title: Analysis: Quicksort
pagenum: 558; title: Mergesort: Linked List-Based Lists
pagenum: 558; title: Divide
pagenum: 560; title: Merge
pagenum: 562; title: Analysis: Mergesort
pagenum: 566; title: Heapsort: Array-Based Lists
pagenum: 567; title: Build Heap
pagenum: 569; title: Analysis: Heapsort
pagenum: 575; title: Priority Queues (Revisited)
pagenum: 575; title: Programming Example: Election Results
pagenum: 576; title: Quick Review
pagenum: 593; title: Exercises
pagenum: 594; title: Programming Exercises
pagenum: 596; label: Chapter 11
title: Binary Trees and B-Trees
pagenum: 599; title: Binary Trees
pagenum: 600; title: Copy Tree
pagenum: 604; title: Binary Tree Traversal
pagenum: 605; title: Inorder Traversal
pagenum: 605; title: Preorder Traversal
pagenum: 605; title: Postorder Traversal
pagenum: 605; title: Implementing Binary Trees
pagenum: 609; title: Binary Search Trees
pagenum: 616; title: Search
pagenum: 618; title: Insert
pagenum: 620; title: Delete
pagenum: 621; title: Binary Search Tree: Analysis
pagenum: 627; title: Nonrecursive Binary Tree Traversal Algorithms
pagenum: 628; title: Nonrecursive Inorder Traversal
pagenum: 628; title: Nonrecursive Preorder Traversal
pagenum: 630; title: Nonrecursive Postorder Traversal
pagenum: 631; title: Binary Tree Traversal and Functions as Parameters
pagenum: 632; title: AVL (Height-Balanced) Trees
pagenum: 635; title: Insertion
pagenum: 637; title: AVL Tree Rotations
pagenum: 641; title: Deletion from AVL Trees
pagenum: 652; title: Analysis: AVL Trees
pagenum: 653; title: Programming Example: Video Store (Revisited)
pagenum: 654; title: B-Trees
pagenum: 662; title: Search
pagenum: 665; title: Traversing a B-Tree
pagenum: 666; title: Insertion into a B-Tree
pagenum: 667; title: Deletion from a B-Tree
pagenum: 672; title: Quick Review
pagenum: 676; title: Exercises
pagenum: 678; title: Programming Exercises
pagenum: 682; label: Chapter 12
title: Graphs
pagenum: 685; title: Introduction
pagenum: 686; title: Graph Definitions and Notations
pagenum: 687; title: Graph Representation
pagenum: 689; title: Adjacency Matrices
pagenum: 689; title: Adjacency Lists
pagenum: 690; title: Operations on Graphs
pagenum: 691; title: Graphs as ADTs
pagenum: 692; title: Graph Traversals
pagenum: 695; title: Depth-First Traversal
pagenum: 696; title: Breadth-First Traversal
pagenum: 698; title: Shortest Path Algorithm
pagenum: 700; title: Shortest Path
pagenum: 701; title: Minimum Spanning Tree
pagenum: 706; title: Topological Order
pagenum: 713; title: Breadth-First Topological Ordering
pagenum: 715; title: Euler Circuits
pagenum: 719; title: Quick Review
pagenum: 722; title: Exercises
pagenum: 724; title: Programming Exercises
pagenum: 727; label: Chapter 13
title: Standard Template Library (STL) II
pagenum: 731; title: Class pair
pagenum: 732; title: Comparing Objects of Type pair
pagenum: 734; title: Type pair and Function make_pair; title: Associative Containers
pagenum: 736; title: Associative Containers: set and multiset
pagenum: 737; title: Associative Containers: map and multimap
pagenum: 742; title: Containers, Associated Header Files, and Iterator Support
pagenum: 747; title: Algorithms
pagenum: 748; title: STL Algorithm Classification
pagenum: 748; title: Nonmodifying Algorithms
pagenum: 748; title: Modifying Algorithms
pagenum: 749; title: Numeric Algorithms
pagenum: 750; title: Heap Algorithms
pagenum: 750; title: Function Objects
pagenum: 751; title: Predicates
pagenum: 756; title: STL Algorithms (specific functions)
pagenum: 758; title: Functions fill and fill_n
pagenum: 758; title: Functions generate and generate_n
pagenum: 760; title: Functions find, find_if, find_end, and find_first_of
pagenum: 762; title: Functions remove, remove_if, remove_copy, and remove_copy_if
pagenum: 764; title: Functions replace, replace_if, replace_copy, and replace_copy_if
pagenum: 768; title: Functions swap, iter_swap, and swap_ranges
pagenum: 770; title: Functions search, search_n, sort, and binary_search
pagenum: 773; title: Functions adjacent_find, merge, and inplace_merge
pagenum: 777; title: Functions reverse, reverse_copy, rotate, and rotate_copy
pagenum: 779; title: Functions count, count_if, max_element, min_element, and random_shuffle
pagenum: 782; title: Functions for_each and transform
pagenum: 786; title: Functions includes, set_intersection, set_union, set_difference, and set_symmetric_difference
pagenum: 788; title: Functions accumulate, adjacent_difference, inner_product, and partial_sum
pagenum: 794; title: Quick Review
pagenum: 799; title: Exercises
pagenum: 803; title: Programming Exercises
pagenum: 804; label: Appendix A
title: Reserved Words
pagenum: 807; label: Appendix B
title: Operator Precedence
pagenum: 809; label: Appendix C
title: Character Sets
pagenum: 811; title: ASCII (American Standard Code for Information Interchange)
pagenum: 811; title: EBCDIC (Extended Binary Coded Decimal Interchange Code)
pagenum: 812; label: Appendix D
title: Operator Overloading
pagenum: 815; label: Appendix E
title: Header Files
pagenum: 817; title: Header File cassert
pagenum: 817; title: Header File cctype
pagenum: 818; title: Header File cfloat
pagenum: 819; title: Header File climits
pagenum: 820; title: Header File cmath
pagenum: 820; title: Header File cstddef
pagenum: 822; title: Header File cstring
pagenum: 822; label: Appendix F
title: Additional C++ Topics
pagenum: 825; title: Analysis: Insertion Sort
pagenum: 825; title: Analysis: Quicksort
pagenum: 826; title: Worst-Case Analysis
pagenum: 827; title: Average-Case Analysis
pagenum: 828; label: Appendix G
title: C++ for Java Programmers
pagenum: 833; title: Data Types
pagenum: 833; title: Arithmetic Operators and Expressions
pagenum: 834; title: Named Constants, Variables, and Assignment Statements
pagenum: 834; title: C++ Library: Preprocessor Directives
pagenum: 835; title: C++ Program
pagenum: 836; title: Input and Output
pagenum: 837; title: Input
pagenum: 837; title: Input Failure
pagenum: 839; title: Output
pagenum: 840; title: setprecision
pagenum: 841; title: fixed
pagenum: 841; title: showpoint
pagenum: 842; title: setw
pagenum: 842; title: left and right Manipulators
pagenum: 843; title: File Input/Output
pagenum: 843; title: Control Structures
pagenum: 846; title: Namespaces
pagenum: 847; title: Functions and Parameters
pagenum: 849; title: Value-Returning Functions
pagenum: 849; title: Void Functions
pagenum: 850; title: Reference Parameters and Value-Returning Functions
pagenum: 852; title: Functions with Default Parameters
pagenum: 852; title: Arrays
pagenum: 854; title: Accessing Array Components
pagenum: 854; title: Array Index Out of Bounds
pagenum: 854; title: Arrays as Parameters to Functions
pagenum: 855; label: Appendix H
title: References
pagenum: 857; label: Appendix I
title: Answers to Odd-Numbered Exercises
pagenum: 859; title: Chapter 1
pagenum: 859; title: Chapter 2
pagenum: 861; title: Chapter 3
pagenum: 862; title: Chapter 4
pagenum: 863; title: Chapter 5
pagenum: 863; title: Chapter 6
pagenum: 865; title: Chapter 7
pagenum: 866; title: Chapter 8
pagenum: 867; title: Chapter 9
pagenum: 868; title: Chapter 10
pagenum: 871; title: Chapter 11
pagenum: 872; title: Chapter 12
pagenum: 877; title: Chapter 13
pagenum: 878; title: Index
pagenum: 879