The Most Commonly-Used Data Structures: Terence Parr USF
The Most Commonly-Used Data Structures: Terence Parr USF
Introduction
Abstract data types Data structures (implementations) Combinations
Set (unordered, unique) Dictionary (also called Map) Graph (directed or undirected) Tree
Binary tree
Choose via:
access pattern, properties, element relationships
List
Operations: add, get, insert, delete, find
queue: add to tail, get only from head stack: add to top, delete from top
Typical implementation: array or linked list Examples: list of users, list of books
Set
Operations: add, delete, contains Typical implementation: bit vector (if elements are integers) or hash table Examples: set of universities, set of students
Dictionary
Operations: map x->y, get x, delete x Typical implementation: hash table Examples:
student -> userid student -> list of classes
Graph
Collection of nodes connected by directed or undirected edges with or without labels Path==sequence of edges Operations: add node, add edge x->y, delete node, delete edge Typical implementation: node has list of edges that point to other nodes Examples: network simulation, email trail between employees (social network), finite automata
Tree
A kind of directed graph with unique edge path from node x to y Children: emanating edges, Root: topmost node, Leaves: nodes w/o children Operations: add child, delete a child Typical implementation: node has list of children (again, a restricted graph) Examples: organization chart, class hierarchy, expression tree Binary tree: at most 2 children per node
Implementations
Linked list
head, tail pointers wrapper to hold value and next Operations:
get O(1) others O(n)
Hash table
Fast implementation of a dictionary; like an associative memory; maps key to value Idea: break up large search space into many smaller spaces
hash function tells you which of the smaller spaces (buckets) has element of interest search linearly within smaller space simple hash of int: hash(x)=x; hash of string: sum of char values
Hash table 2
Tree
Node has list of children; need root ptr
+
3 4 * 5 VP Sales VP Eng. CEO President
Graph
States or nodes have list of edges to other states
Mary Jim Tim Jen Chris