This document discusses arrays and structures. It begins by defining an array as a set of index and value pairs where each index has an associated value. Arrays can be implemented using consecutive memory locations. Structures allow grouping of different data types together. Self-referential structures have one or more components that point back to the structure itself. Examples of abstract data types discussed include arrays, polynomials, and sparse matrices. Common operations on these data types like addition, multiplication, and transposition are also described.