Trees are hierarchical data structures where data items have a parent-child relationship. There are several ways to represent trees in memory, including array and linked list representations. Array representation stores tree nodes sequentially in an array, where the index of each node can be used to determine its parent, left child, right child, and siblings according to specific formulas. For example, the parent of node at index n is located at (n-1)/2, the left child is at 2n+1, and the right child is at 2n+2. Array representation allows trees to be traversed and manipulated efficiently.