COP 3530 Data Structures & Algorithms Discussion Session 6 by Eyup
Outline Linear lists - Array representation Operator overloading arrayList iterator STL in C++ An example of bidirectional iterator Usage in STL algorithms Operator overloading
The abstract class linearList
Array representation List = {5, 2, 4, 8, 1} Insertion and removal
The class arrayList
Iterators in C++ Points to an element of an object Defined in STL Five categories. All support ==, !=, *, ++ Input : Read access Output: Write access Forward: Read and write Bidirectional: -- Random access: +=, -=, +, -, <, >, <=, >=, []
A bidirectional iterator for arrayList
A bidirectional iterator for arrayList (cont.)
A bidirectional iterator for arrayList (cont.)
Using iterators To be added into arrayList Initialization STL algorithms
STL algorithms Reverse Sort
Operator overloading Arithmetic operators Relational operators I/O operators Constructors and conversions
Example
References http://www.cplusplus.com/reference/std/iterator/ http://www.cplusplus.com/reference/algorithm/ http://www.cplusplus.com/reference/stl/ Data structures, algorithms, and applications in C++, Sartaj Sahni. 2nd ed. http://www.cs.duke.edu/csed/tapestry/howtoe.pdf http://www.cplusplus.com/doc/tutorial/classes2/
Questions