0% found this document useful (0 votes)
11 views

Best Graph Notes

graph

Uploaded by

mk1139418
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
11 views

Best Graph Notes

graph

Uploaded by

mk1139418
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 8
Data Structure - Graph Data Structure gorithms hutps://svww.tutorialspoint.com/data_ structures ; raph_data_structure htm Copyright © tutorialspoint.com A graph is a pictorial representation of a set of objects where some pairs of objects are connected by links. The interconnected objects are represented by points termed as vertices, and the links that connect the vertices are ealled edges. 4g): Kuvder Cdansk: Kauter Formally. a graph is a pair of sets V, E, where V is the set of vertices and E is the set of edges, connecting the pairs of vertices. Take a look at the following graph — a b AA ab leiden Vi kommer Pe leboyrivder. Lelaytincier re en BSartig form for gre wor her fait wes som = —— Tee enka, 05, Kenbertee oF c & e Se aloe Ser binder 4 ) wabo AH ge as In the above graph, , vw, tS V=fa.b.eie} Opa a at x E= (ab(Qe)bd ed 2) iy 3 =e Graph Data Structure Mathematical graphs can be represented in data structure. We can represent a graph using an array of vertices and a two-dimensional array of edges. Before we proceed further, let's familiarize ourselves with some important terms — " uosle side © Vertex — Each node of the graph is represented as a vertex. In the following example, the labeled circle represents vertices. Thus, A to G are vertices. We can represent them using an array as shown in the following image. Here A can be identified by index 0. B can be identified using index 1 and soon. «Edge ~ Edge represents a path between two vertices or a line between two vertices. In the following example, the lines from A to B. B to C, and so on represents edges. We can use a two-dimensional array to represent an array as shown in the following image. Here AB can be represented as 1 at row 0, column 1, BC as 1 at row 1, column 2 and so on, keeping other combinations as 0. Nabe © Adjaceney“ Two node o vertices are adjacent if they are gnnected to each other through an edge In the following example, B is adjacent to A, C is adjaceyf‘to B, and so on. Ze © Path © Path represents a sequence of edges between 1 ABCD represents a path from A to D. two vertices. In the following rpecme Be a ra enone A ae fovoee G1 baw "hose oF GU tggt er Gebel Hi ol 234s € (AsTeqoTeTTET of, ty th th “A ig Ye Ere, Basic Operations ° d& Me Following are basic primary operations of a Graph — Her ke ver e @ Add Vertex — Adds a vertex to the graph. Lslgul ~ der er Toner Way kau Aille sig # Add Edge ~ Adds an edge between the two vertices of the graph. © Display Vertex — Displays a vertex of the graph. To know more about Graph, please read Graph Theory Tutorial. We shall lean about traversing a graph in the coming chapters Data Structure - Depth First Traversal htips://www tutorialspoint com/data Copyright © ttorialspoint.com orithms/depth_firs! aversal htm Depth First Search DFS algorithm traverses a graph in a depthward motion and uses a stack to remember to get the next vertex to start a search, when a dead end occurs in any iteration. _-(s we A ’ 1 + (a B e WY Sw Oh ‘ ‘ 21 5| 7 \ , } ‘ ’ > e F oT Wr 1 \ \ at ff 3s. SY es Way NY As in the example given above, DFS algorithm traverses from A to B to C to D first then to E, then to F and lastly to G. It employs the following rules © Rule 1 ~ Visit the adjacent unvisited vertex. Mark it as visited. Display it, Push it in a stack. © Rule 2 ~ If no adjacent vertex is found, pop up a vertex from the stack Itwillpopupalltheverticesfromthestack, whichdonothaveadjacentvertices. # Rule 3 — Repeat Rule 1 and Rule 2 until the stack is empty Step ‘Traversal Description by eC: Sy Stack Initialize the stack. top+| s Stack top>)| A Stack top>! oro ‘Stack top) oro ‘Stack Mark S as visited and put it onto the stack Explore any unvisited adjacent node from S. ‘We have three nodes and we can pick any of them. For this example, we shall take the node in an alphabetical order. ‘Mark A as visited and put it onto the stack. Explore any unvisited adjacent node from A. Both S and D are adjacent to A but we are concemed for unvisited nodes only. Visit D and mark it as visited and put onto the stack. Here, we have B and C nodes, which are adjacent to D and both are unvisited. However, we shall again choose in an alphabetical order Huis vi vac ude pe bat et Fiude ow vil og OD D, st bemark ot Gun sty Vi skak lorvge ox pi stellen ‘We choose B, mark it as visited and put onto the stack. Here B does not have any unvisited adjacent node. So, we pop B from the stack. ‘We check the stack top for return to the previous node and check if it has any unvisited nodes. Here, we find D to be on the top of the stack. top+|| D Stack top>! ¢ Only unvisited adjacent node is from D is now. So we visit C, mark it as visited and put it onto the stack, ‘Stack As C does not have any unvisited adjacent node so we keep popping the stack until we find a node that hhas an unvisited adjacent node. In this case, there's none and we keep popping until the stack is empty. To know about the implementation of this algorithm in C programming language, click here Data Structure - Breadth First Traversal https://www tutorialspoint.comv/data Copyright © tutorialspoint.com orithms/breadth_first_ traversal htm Breadth First Search BFS algorithm taverses a graph in a breadthward motion and uses a queue to remember to get the next vertex to start a search, when a dead end occurs in any iteration. 8 oe “yt n ‘ ' ‘ 1) /2, 3 ‘ ‘ ‘ A 8 © HY A \A ’ ‘ \ 4 ‘6 \ ' ¢ F od As in the example given above, BFS algorithm traverses from A to B to E to F first then to C and G lastly toD. Itemploys the following rules * Rule 1 ~ Visit the adjacent unvisited vertex. Mark it as sited. Display it. Insert it in a queue. © Rule 2 ~ If no adjacent vertex is found, remove the first vertex from the queue. * Rule 3— Repeat Rule 1 and Rule 2 until the queve is empty Step Traversal Description JIN 1 Initialize the queue. NIH We start from visiting S startingnode , and mark it as visited. We then see an unvisited adjacent node from S.In this example, we have three nocles but alphabetically we choose A, mark it as visited and enqueue it Next, the unvisited adjacent node from S is B. ‘We mark it as visited and enqueue it Next, the unvisited adjacent node from S is € ‘We mark it as visited and enqueve it Now, $ is left with no unvisited adjacent nodes. So, we dequeue and find A. JIN From A we have D as unvisited adjacent node. We mark it as visited aud enqueve it. a 8 c NY == At this stage, we are left with no unmarked unvisited nodes, But as per the algorithm we keep on dequeuing in order to get all unvisited nodes. When the queue gets emptied, the program is over. The implementation of this algorithm in C programming language can be seen here.

You might also like