  Dynamic or temporal networks enable representation of time-varying edges
between nodes. Conventional adjacency-based data structures used for storing
networks such as adjacency lists were designed without incorporating time and
can thus quickly retrieve all edges between two sets of nodes (a node-based
slice) but cannot quickly retrieve all edges that occur within a given time
interval (a time-based slice). We propose a hybrid data structure for storing
temporal networks that stores edges in both an adjacency dictionary, enabling
rapid node-based slices, and an interval tree, enabling rapid time-based
slices. Our hybrid structure also enables compound slices, where one needs to
slice both over nodes and time, either by slicing first over nodes or slicing
first over time. We further propose an approach for predictive compound
slicing, which attempts to predict whether a node-based or time-based compound
slice is more efficient. We evaluate our hybrid data structure on many real
temporal network data sets and find that they achieve much faster slice times
than existing data structures with only a modest increase in creation time and
memory usage.
