Author : Vic Broquard
Publisher :
Page : 626 pages
File Size : 15,48 MB
Release : 2014-08-31
Category : C++ (Computer program language)
ISBN : 9781941415559
Book Description
After a complete review of basic class construction with which you should be familiar, Advanced Data Structures in C++ covers more advanced features of classes. Among these are forward references, class enumerated data types, friend functions, constant data members, static data members, static member functions, reference variables that are data members, methods of inlining functions and how to make a production library. Next, Advanced Data Structures in C++ covers in depth all of the various operator overloaded functions; there are a rather large number of them. Then, the principles of inheritance are fully covered. Virtual functions are presented along with the need for them. Examples clearly illustrate their usage. Abstract base classes and pure virtual functions are presented with a significant example of their usage. Advanced Data Structures in C++ discusses C++ error handling in depth along with dynamic casting and run time type identification. How "out of memory" errors are caught is discussed in depth, since Microsoft's VC 7 (and subsequent compilers) new function now no longer returns 0 when short of memory. The design of a hierarchy of exception classes is presented showing how an application can fully utilize the C++ error handling mechanism. Also, how to replace the new and delete functions, replacing the terminate and unexpected error handlers is shown. Next, Advanced Data Structures in C++ presents a full review of the four basic container classes, including the growable array, double linked list, stack and queue. C++ programming templates are covered in depth followed by an example of converting the double linked list into a template class. How client programs are written using these template classes is presented next. A thorough discussion of binary files and hashing techniques comes next. Direct file processing techniques cover the relative record number method, the remainder method and ISAM (Indexed Sequential Access Method). How to write master file update programs is discussed in depth. The impact of structure alignment is visibly shown. Then, Advanced Data Structures in C++ shows the need for hashing techniques. Hence, various methods of hashing are presented. Trees are discussed in depth next, including notation and needed functions and tree operations, such as inserting a new node and deleting a node. Advanced Data Structures in C++ shows a complete example of a binary search tree using an ISAM data base. Advanced Data Structures in C++'s chapter on sorting algorithms presents five different methods in detail. It also implements a benchmark program you can use for comparison purposes. B-trees and their variations are covered next. A complete implementation of an AVL tree is presented. Advanced Data Structures in C++ discusses graphs, priority queues and heaps in detail. Network operations are also shown. The sample program illustrates graphs in depth including showing the shortest path. The examples show how to produce useful formatted results, not just theoretical displays. Next, sets and maps are discussed. Set implementations include the set as an array and the set as a bit vector. The map structure is used to show the very beginning steps of data compression routines. The STL (Standard Template Library) is introduced. How they are created and used is discussed. Examples show how to use the basic container classes. The last chapter of Advanced Data Structures in C++ presents the theory of complex program analysis and included the big-O notation. However, I have kept the level of math low for those who are weak on higher mathematical procedures. The concepts should be easily understood and can be utilized by anyone to estimate the performance of a routing. An appendix shows in depth how to use the new Microsoft VC (.NET) compiler to build and debug C++ programs. Each chapter of Advanced Data Structures in C++ has a set of Review Questions and Programming Problems to solve.