Undirected Graphs (vertex number: n, edge number: m) Let B be the number of hash buckets (in hash-based representations). | Representation | Scan Neighbors of u | Check Existence of (u,v) | Insert an Edge | Delete an Edge | |---------------------------|-----------------------|---------------------------|-------------------|-------------------| | RDBMS: | Edge List | O(m) | O(m) | O(1) | O(m) | | Hash for Edges | O(m + B) | O(1) | O(1) | O(1) | | Sorted Edge List | O(log m + deg(u)) | O(log m) | O(m) | O(m) | | BST for Edges | O(log m + deg(u)) | O(log m) | O(log m) | O(log m) | | Adjacency List | O(deg(u)) | O(deg(u)) | O(1) | O(deg(u)) | | Adjacency Matrix | O(n) | O(1) | O(1) | O(1) | | CSR | O(deg(u)) | O(deg(u)) | O(m) | O(m) | | Adj. Sorted List/Array | O(deg(u)) | O(log deg(u)) | O(deg(u)) | O(deg(u)) | | Adj. Linked List | O(deg(u)) | O(deg(u)) | O(1) | O(deg(u)) | | Adj. Hash | O(deg(u) + B) | O(1) | O(1) | O(1) | | Adj. BST | O(deg(u)) | O(log deg(u)) | O(log deg(u)) | O(log deg(u)) |