CS 225 Data Structures Apr April 10 10 – Gr Graph Imp mpleme mentation Wade Fa Wa Fagen-Ul Ulmsch schnei eider er, , Cra Craig ZI ZIlles
Gr Grap aphs To study all of these structures: 1. A common vocabulary 2. Graph implementations 3. Graph traversals 4. Graph algorithms
Gr Grap aph ADT Functions: - insertVertex(K key); Data: - insertEdge(Vertex v1, Vertex v2, K key); - Vertices - Edges - removeVertex(Vertex v); - Some data structure - removeEdge(Vertex v1, Vertex v2); maintaining the structure between vertices and edges. - incidentEdges(Vertex v); - areAdjacent(Vertex v1, Vertex v2); V b d X Z h - origin(Edge e); e - destination(Edge e); W g f Y
Graph Implem emen entation: Edge e List Vertex Collection: u a c b d v w z Edge Collection: u u v a v v w b w u w c z w z d
Graph Implem emen entation: Edge e List insertVertex(K key): u a c b d v w z removeVertex(Vertex v): u u v a v v w b w u w c z w z d
Graph Implem emen entation: Edge e List incidentEdges(Vertex v): u a c b d v w z u u v a areAdjacent(Vertex v1, Vertex v2): v v w b w u w c G.incidentEdges(v1).contains(v2) z w z d
Graph Implem emen entation: Edge e List insertEdge(Vertex v1, Vertex v2, K key): u a c b d v w z u u v a v v w b w u w c z w z d
Graph Implem emen entation: Adja jacen ency Matrix u a c b d v w z u v w z u u v a u v v w b v w u w c w z w z d z
Graph Implem emen entation: Adja jacen ency Matrix u a c b d v w z u v w z u u v a u - 1 1 0 v v w b v - 1 0 w u w c w - 1 z w z d z -
Graph Implem emen entation: Adja jacen ency Matrix u a c b d v w z u v w z u u v a u - 0 v v w b v - 0 w u w c w - z w z d z -
Graph Implem emen entation: Adja jacen ency Matrix insertVertex(K key): u a c b d v w z u v w z u u v a u - 0 v v w b v - 0 w u w c w - z w z d z -
Graph Implem emen entation: Adja jacen ency Matrix removeVertex(Vertex v): u a c b d v w z u v w z u u v a u - 0 v v w b v - 0 w u w c w - z w z d z -
Graph Implem emen entation: Adja jacen ency Matrix incidentEdges(Vertex v): u a c b d v w z u v w z u u v a u - 0 v v w b v - 0 w u w c w - z w z d z -
Graph Implem emen entation: Adja jacen ency Matrix areAdjacent(Vertex v1, Vertex v2): u a c b d v w z u v w z u u v a u - 0 v v w b v - 0 w u w c w - z w z d z -
Graph Implem emen entation: Adja jacen ency Matrix insertEdge(Vertex v1, Vertex v2, K key): u a c b d v w z u v w z u u v a u - 0 v v w b v - 0 w u w c w - z w z d z -
Graph Implem emen entation: Edge e List u a c b d v w z u v a u v w b v w u w c w z d z
Adja jacen ency List u a c b d v w z a c u v a u d=2 a b v w b v d=2 b c d w u w c d=3 w z d z d d=1
Adja jacen ency List u a c b d v w z a c u v a u d=2 a b v w b v d=2 b c d w u w c d=3 w z d z d d=1
insertVertex(K key): Adja jacen ency List u a c b d v w z a c u v a u d=2 a b v w b v d=2 b c d w u w c d=3 w z d z d d=1
removeVertex(Vertex v): Adja jacen ency List u a c b d v w z a c u v a u d=2 a b v w b v d=2 b c d w u w c d=3 w z d z d d=1
incidentEdges(Vertex v): Adja jacen ency List u a c b d v w z a c u v a u d=2 a b v w b v d=2 b c d w u w c d=3 w z d z d d=1
areAdjacent(Vertex v1, Vertex v2): Adja jacen ency List u a c b d v w z a c u v a u d=2 a b v w b v d=2 b c d w u w c d=3 w z d z d d=1
insertEdge(Vertex v1, Vertex v2, K key): Adja jacen ency List u a c b d v w z a c u v a u d=2 a b v w b v d=2 b c d w u w c d=3 w z d z d d=1
Edge List Adjacency Matrix Adjacency List Expressed as O(f) Space n+m n 2 n+m insertVertex(v) 1 n 1 removeVertex(v) m n deg(v) insertEdge(v, w, k) 1 1 1 removeEdge(v, w) 1 1 1 incidentEdges(v) m n deg(v) min( deg(v), areAdjacent(v, w) m 1 deg(w) )
Recommend
More recommend