From b9a5da2b43580a2661867f28554a047e6d0c87d9 Mon Sep 17 00:00:00 2001 From: Komal Agarwal Date: Wed, 5 Jun 2024 22:20:05 +0530 Subject: [PATCH 1/2] graphs in dsa layout --- dsa/beginner/06-graphs.md | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 dsa/beginner/06-graphs.md diff --git a/dsa/beginner/06-graphs.md b/dsa/beginner/06-graphs.md new file mode 100644 index 000000000..757a4b133 --- /dev/null +++ b/dsa/beginner/06-graphs.md @@ -0,0 +1,45 @@ +--- +id: 06-graphs +title: Graphs +sidebar_label: Graphs +tags: + - dsa + - data-structures + - graphs + - beginner + - javascript + - python + - c++ + - java + - programming + - tutorial + - typescript +sidebar_position: 6 +--- + +In this tutorial, we will learn about graphs in Data Structures and Algorithms. We will discuss what graphs are, how they are used, and why they are important. + +## Graphs in Programming + +Graph Data Structure is a collection of nodes connected by edges. It’s used to represent relationships between different entities. Graph algorithms are methods used to manipulate and analyze graphs, solving various problems like finding the shortest path or detecting cycles. + +Graph is a non-linear data structure consisting of vertices and edges. The vertices are sometimes also referred to as nodes and the edges are lines or arcs that connect any two nodes in the graph. More formally a Graph is composed of a set of vertices( V ) and a set of edges( E ). The graph is denoted by G(V, E). + +## Components of a Graph + +- Vertices: Vertices are the fundamental units of the graph. Sometimes, vertices are also known as vertex or nodes. Every node/vertex can be labeled or unlabeled. +- Edges: Edges are drawn or used to connect two nodes of the graph. It can be ordered pair of nodes in a directed graph. Edges can connect any two nodes in any possible way. There are no rules. Sometimes, edges are also known as arcs. Every edge can be labelled/unlabelled. + + + +## Applications + +- Graph data structures can be used to represent the interactions between players on a team, such as passes, shots, and tackles. Analyzing these interactions can provide insights into team dynamics and areas for improvement. +- Commonly used to represent social networks, such as networks of friends on social media. +- Graphs can be used to represent the topology of computer networks, such as the connections between routers and switches. +- Graphs are used to represent the connections between different places in a transportation network, such as roads and airports. +- Graphs are used in Neural Networks where vertices represent neurons and edges represent the synapses between them. Neural networks are used to understand how our brain works and how connections change when we learn. The human brain has about 10^11 neurons and close to 10^15 synapses. + +## Conclusion + +In this tutorial, we have learned about graphs in Data Structures and Algorithms. We have discussed what graphs are, how they are used, and why they are important. \ No newline at end of file From 2edccc71d085484d62d24b3ba0286c90de948f67 Mon Sep 17 00:00:00 2001 From: Komal Agarwal Date: Thu, 6 Jun 2024 00:17:37 +0530 Subject: [PATCH 2/2] graphs dsa --- dsa/beginner/06-graphs.md | 469 ++++++++++++++++++++++++++++++++ dsa/beginner/images/graphs1.png | Bin 0 -> 14686 bytes dsa/beginner/images/graphs2.png | Bin 0 -> 16218 bytes dsa/beginner/images/graphs3.png | Bin 0 -> 19449 bytes dsa/beginner/images/graphs4.png | Bin 0 -> 19576 bytes 5 files changed, 469 insertions(+) create mode 100644 dsa/beginner/images/graphs1.png create mode 100644 dsa/beginner/images/graphs2.png create mode 100644 dsa/beginner/images/graphs3.png create mode 100644 dsa/beginner/images/graphs4.png diff --git a/dsa/beginner/06-graphs.md b/dsa/beginner/06-graphs.md index 757a4b133..090f2d15a 100644 --- a/dsa/beginner/06-graphs.md +++ b/dsa/beginner/06-graphs.md @@ -30,7 +30,476 @@ Graph is a non-linear data structure consisting of vertices and edges. The verti - Vertices: Vertices are the fundamental units of the graph. Sometimes, vertices are also known as vertex or nodes. Every node/vertex can be labeled or unlabeled. - Edges: Edges are drawn or used to connect two nodes of the graph. It can be ordered pair of nodes in a directed graph. Edges can connect any two nodes in any possible way. There are no rules. Sometimes, edges are also known as arcs. Every edge can be labelled/unlabelled. +## Graph Representation +### Adjacency Matrix Graph Representation + +The Adjacency Matrix is a 2D array (matrix) where each cell on index (i,j) stores information about the edge from vertex i to vertex j. + +Below is a Graph with the Adjacency Matrix representation next to it. + +![Adj Matrix](./images/graphs1.png) + +The adjacency matrix above represents an undirected Graph, so the values '1' only tells us where the edges are. Also, the values in the adjacency matrix is symmetrical because the edges go both ways (undirected Graph). + +To create a directed Graph with an adjacency matrix, we must decide which vertices the edges go from and to, by inserting the value at the correct indexes (i,j). To represent a weighted Graph we can put other values than '1' inside the adjacency matrix. + +Below is a directed and weighted Graph with the Adjacency Matrix representation next to it. + +![Adj Matrix](./images/graphs2.png) + +In the adjacency matrix above, the value 3 on index (0,1) tells us there is an edge from vertex A to vertex B, and the weight for that edge is 3. + +As you can see, the weights are placed directly into the adjacency matrix for the correct edge, and for a directed Graph, the adjacency matrix does not have to be symmetric. + +### Adjacency List Graph Representation + +In case we have a 'sparse' Graph with many vertices, we can save space by using an Adjacency List compared to using an Adjacency Matrix, because an Adjacency Matrix would reserve a lot of memory on empty Array elements for edges that don't exist. + +A 'sparse' Graph is a Graph where each vertex only has edges to a small portion of the other vertices in the Graph. + +An Adjacency List has an array that contains all the vertices in the Graph, and each vertex has a Linked List (or Array) with the vertex's edges. + +![Adj List](./images/graphs3.png) + +In the adjacency list above, the vertices A to D are placed in an Array, and each vertex in the array has its index written right next to it. + +Each vertex in the Array has a pointer to a Linked List that represents that vertex's edges. More specifically, the Linked List contains the indexes to the adjacent (neighbor) vertices. + +So for example, vertex A has a link to a Linked List with values 3, 1, and 2. These values are the indexes to A's adjacent vertices D, B, and C. + +An Adjacency List can also represent a directed and weighted Graph, like this: + +![Adj List](./images/graphs4.png) + +In the Adjacency List above, vertices are stored in an Array. Each vertex has a pointer to a Linked List with edges stored as i,w, where i is the index of the vertex the edge goes to, and w is the weight of that edge. + +Node D for example, has a pointer to a Linked List with an edge to vertex A. The values 0,4 means that vertex D has an edge to vertex on index 0 (vertex A), and the weight of that edge is 4. + + +Here is an example of a basic graph in some programming languages: + + + + ```javascript + class Graph { + constructor(size) { + this.size = size; + this.adjMatrix = Array.from({ length: size }, () => Array(size).fill(0)); + this.vertexData = Array(size).fill(''); + } + + addEdge(u, v) { + if (u >= 0 && u < this.size && v >= 0 && v < this.size) { + this.adjMatrix[u][v] = 1; + this.adjMatrix[v][u] = 1; + } + } + + addVertexData(vertex, data) { + if (vertex >= 0 && vertex < this.size) { + this.vertexData[vertex] = data; + } + } + + printGraph() { + console.log("Adjacency Matrix:"); + for (let i = 0; i < this.size; i++) { + console.log(this.adjMatrix[i].join(' ')); + } + + console.log("\nVertex Data:"); + for (let i = 0; i < this.size; i++) { + console.log(`Vertex ${i}: ${this.vertexData[i]}`); + } + } +} + +// Example usage: +const g = new Graph(4); +g.addVertexData(0, 'A'); +g.addVertexData(1, 'B'); +g.addVertexData(2, 'C'); +g.addVertexData(3, 'D'); +g.addEdge(0, 1); // A - B +g.addEdge(0, 2); // A - C +g.addEdge(0, 3); // A - D +g.addEdge(1, 2); // B - C + +g.printGraph(); + ``` + + + ```python + class Graph: + def __init__(self, size): + self.adj_matrix = [[0] * size for _ in range(size)] + self.size = size + self.vertex_data = [''] * size + + def add_edge(self, u, v): + if 0 <= u < self.size and 0 <= v < self.size: + self.adj_matrix[u][v] = 1 + self.adj_matrix[v][u] = 1 + + def add_vertex_data(self, vertex, data): + if 0 <= vertex < self.size: + self.vertex_data[vertex] = data + + def print_graph(self): + print("Adjacency Matrix:") + for row in self.adj_matrix: + print(' '.join(map(str, row))) + print("\nVertex Data:") + for vertex, data in enumerate(self.vertex_data): + print(f"Vertex {vertex}: {data}") + + g = Graph(4) + g.add_vertex_data(0, 'A') + g.add_vertex_data(1, 'B') + g.add_vertex_data(2, 'C') + g.add_vertex_data(3, 'D') + g.add_edge(0, 1) # A - B + g.add_edge(0, 2) # A - C + g.add_edge(0, 3) # A - D + g.add_edge(1, 2) # B - C + + g.print_graph() + ``` + + + ```typescript + class Graph { + private adjMatrix: number[][]; + private vertexData: string[]; + private size: number; + + constructor(size: number) { + this.size = size; + this.adjMatrix = Array.from({ length: size }, () => Array(size).fill(0)); + this.vertexData = Array(size).fill(''); + } + + public addEdge(u: number, v: number): void { + if (u >= 0 && u < this.size && v >= 0 && v < this.size) { + this.adjMatrix[u][v] = 1; + this.adjMatrix[v][u] = 1; + } + } + + public addVertexData(vertex: number, data: string): void { + if (vertex >= 0 && vertex < this.size) { + this.vertexData[vertex] = data; + } + } + + public printGraph(): void { + console.log("Adjacency Matrix:"); + for (let i = 0; i < this.size; i++) { + console.log(this.adjMatrix[i].join(' ')); + } + + console.log("\nVertex Data:"); + for (let i = 0; i < this.size; i++) { + console.log(`Vertex ${i}: ${this.vertexData[i]}`); + } + } +} + +// Example usage: +const g = new Graph(4); +g.addVertexData(0, 'A'); +g.addVertexData(1, 'B'); +g.addVertexData(2, 'C'); +g.addVertexData(3, 'D'); +g.addEdge(0, 1); // A - B +g.addEdge(0, 2); // A - C +g.addEdge(0, 3); // A - D +g.addEdge(1, 2); // B - C + +g.printGraph(); + + ``` + + + ```cpp + #include +#include +#include + +class Graph { +private: + std::vector> adjMatrix; + std::vector vertexData; + int size; + +public: + Graph(int size) { + this->size = size; + adjMatrix.resize(size, std::vector(size, 0)); + vertexData.resize(size, ""); + } + + void addEdge(int u, int v) { + if (u >= 0 && u < size && v >= 0 && v < size) { + adjMatrix[u][v] = 1; + adjMatrix[v][u] = 1; + } + } + + void addVertexData(int vertex, const std::string& data) { + if (vertex >= 0 && vertex < size) { + vertexData[vertex] = data; + } + } + + void printGraph() { + std::cout << "Adjacency Matrix:" << std::endl; + for (int i = 0; i < size; ++i) { + for (int j = 0; j < size; ++j) { + std::cout << adjMatrix[i][j] << " "; + } + std::cout << std::endl; + } + + std::cout << "\nVertex Data:" << std::endl; + for (int i = 0; i < size; ++i) { + std::cout << "Vertex " << i << ": " << vertexData[i] << std::endl; + } + } +}; + +int main() { + Graph g(4); + g.addVertexData(0, "A"); + g.addVertexData(1, "B"); + g.addVertexData(2, "C"); + g.addVertexData(3, "D"); + g.addEdge(0, 1); // A - B + g.addEdge(0, 2); // A - C + g.addEdge(0, 3); // A - D + g.addEdge(1, 2); // B - C + + g.printGraph(); + return 0; +} + + ``` + + + ```java + class Graph { + private int[][] adjMatrix; + private int size; + private String[] vertexData; + + public Graph(int size) { + this.size = size; + this.adjMatrix = new int[size][size]; + this.vertexData = new String[size]; + for (int i = 0; i < size; i++) { + this.vertexData[i] = ""; + } + } + + public void addEdge(int u, int v) { + if (u >= 0 && u < size && v >= 0 && v < size) { + this.adjMatrix[u][v] = 1; + this.adjMatrix[v][u] = 1; + } + } + + public void addVertexData(int vertex, String data) { + if (vertex >= 0 && vertex < size) { + this.vertexData[vertex] = data; + } + } + + public void printGraph() { + System.out.println("Adjacency Matrix:"); + for (int i = 0; i < size; i++) { + for (int j = 0; j < size; j++) { + System.out.print(this.adjMatrix[i][j] + " "); + } + System.out.println(); + } + + System.out.println("\nVertex Data:"); + for (int i = 0; i < size; i++) { + System.out.println("Vertex " + i + ": " + this.vertexData[i]); + } + } + + public static void main(String[] args) { + Graph g = new Graph(4); + g.addVertexData(0, "A"); + g.addVertexData(1, "B"); + g.addVertexData(2, "C"); + g.addVertexData(3, "D"); + g.addEdge(0, 1); // A - B + g.addEdge(0, 2); // A - C + g.addEdge(0, 3); // A - D + g.addEdge(1, 2); // B - C + + g.printGraph(); + } +} + + ``` + + + +In the example above, we have created a graph in JavaScript, Python, TypeScript, C++, and Java. We have defined a `Graph` class to represent a vertex and its associated edge in the graph. We have implemented methods to add these to the graph and print the elements of it. + +## Types of Graph + +There are several types of graphs, each with its own characteristics and use cases. Some common types of these include: + +1. **Null Graph**: A graph is known as a null graph if there are no edges in the graph.. +2. **Trivial Graph**: Graph having only a single vertex, it is also the smallest graph possible. . +3. **Undirected Graph**: A graph in which edges do not have any direction. That is the nodes are unordered pairs in the definition of every edge. +4. **Directed Graph**: A graph in which edge has direction. That is the nodes are ordered pairs in the definition of every edge. +5. **Connected Graph**: The graph in which from one node we can visit any other node in the graph is known as a connected graph. +6. **Disconnected Graph**: The graph in which at least one node is not reachable from a node is known as a disconnected graph. +7. **Regular Graph**: The graph in which the degree of every vertex is equal to K is called K regular graph. +8. **Complete Graph**: The graph in which from each node there is an edge to each other node. + + +:::tip for better understanding 🤓 + +## Live Example + +Let's create a graph in jsx using JavaScript. We will define a `Graph` class to represent a adjacnecy list in the graph. We will implement methods to add vertices and edges to the list and print the elements of it. + +```jsx live + function GraphExample() { + // Graph class + class Graph { + constructor() { + this.adjacencyList = {}; + } + + // Add a vertex to the graph + addVertex(vertex) { + if (!this.adjacencyList[vertex]) { + this.adjacencyList[vertex] = []; + } + } + + // Add an edge between two vertices + addEdge(vertex1, vertex2) { + if (this.adjacencyList[vertex1] && this.adjacencyList[vertex2]) { + this.adjacencyList[vertex1].push(vertex2); + this.adjacencyList[vertex2].push(vertex1); + } + } + + // Remove an edge between two vertices + removeEdge(vertex1, vertex2) { + this.adjacencyList[vertex1] = this.adjacencyList[vertex1].filter( + v => v !== vertex2 + ); + this.adjacencyList[vertex2] = this.adjacencyList[vertex2].filter( + v => v !== vertex1 + ); + } + + // Remove a vertex and all connected edges + removeVertex(vertex) { + while (this.adjacencyList[vertex].length) { + const adjacentVertex = this.adjacencyList[vertex].pop(); + this.removeEdge(vertex, adjacentVertex); + } + delete this.adjacencyList[vertex]; + } + + // Print the adjacency list of the graph + printGraph() { + let result = []; + for (let vertex in this.adjacencyList) { + result.push(`${vertex} -> ${this.adjacencyList[vertex].join(", ")}`); + } + return result.join(' | '); + } + } + + // Creating a graph + let graph = new Graph(); + + // Adding vertices + graph.addVertex('A'); + graph.addVertex('B'); + graph.addVertex('C'); + graph.addVertex('D'); + + // Adding edges + graph.addEdge('A', 'B'); + graph.addEdge('A', 'C'); + graph.addEdge('B', 'D'); + graph.addEdge('C', 'D'); + + // Graph before removing an edge + const graphBefore = graph.printGraph(); + + // Removing an edge + graph.removeEdge('A', 'B'); + + // Graph after removing an edge + const graphAfterRemovingEdge = graph.printGraph(); + + // Removing a vertex + graph.removeVertex('D'); + + // Graph after removing a vertex + const graphAfterRemovingVertex = graph.printGraph(); + + return ( +
+
+

Graph Example

+
+

Graph: {graphBefore}

+

Deleting edge A-B...

+

Updated Graph: {graphAfterRemovingEdge}

+

Deleting vertex D...

+

Updated Graph: {graphAfterRemovingVertex}

+
+
+
+ ); +} + +``` + +In the above example: +- A graph instance graph is created. +- Vertices A, B, C, and D are added. +- Edges are added between these vertices. +- The graph's adjacency list is printed. +- An edge is removed, and the updated graph is printed. +- A vertex is removed, and the updated graph is printed. + +::: ## Applications diff --git a/dsa/beginner/images/graphs1.png b/dsa/beginner/images/graphs1.png new file mode 100644 index 0000000000000000000000000000000000000000..c69f4473913c98368660475618ee43000cbb1818 GIT binary patch literal 14686 zcmb8WWmFtp7$gh?Nbo=iu7eXSxV!sc3GNU)xJw{d7-VoKxVr`?xZB_acMa~aop;Zk z{r>ECc7Gr}+`cXJt$LoS>Tp$M84Oe+R5&;|3^`dzH8?oa`lFZF!(h2CwXHa2vh00MmEf-Ws7X~vIC1p={?24Q1k zr$lvyg@q~h8%at^7MQaA8~*YCFx>K(w&VWsV*Kp5aWzLJOBmR1B41K+i~urV*?zl$ z)_OUmFyCNDTvA#}>96y2eE z`l&woHJJxou5{#7zW&WYX{E_Rjrr$Bdr}iqQ&$G4cO(YJmw5lnC{alVO-V5b7uER> zmgCG|qQ2naIG*_px3notj39*po zpYt8@2!~GF_HOabLI$WlXq9zV8FwS#gnc)gJ6`P|uWY+cWuZK(G5Q5&mLD6IX|C3- z%V+;NYHFW>7nzK59xcsz-=a4087bnCn=m8l`;I7e&RYQnc$9ZUfAh7K%q6B`gjoB+ zG=k|Dd#;{Og_8wn<4IpmK*!+_pXlS;SDIoG$$U%IPYK7#zQrtTVk7gouDb24s%@XL zgS*1`sRvPG^}gQk7aqoT#=y?vRD=l~+O85=P%LMv;#< z`!o&Xg@!jW{|*r{JbdlBvuIN(Wo1>of@a#nOuu0Fc%O+IL2t^lQG@8Z{$W{*a6;L8 z7cnG%Kt3|?DjPjd1b2Q59#sfk8dkyD@u)V+NB1OU&~i@8)MWF`u7wM)pV_9`$O&2N zh_8Ztq8jBLtX6S7g0SmLYie+k3>F7NZj%q8jy557Ev0XC zBOKUKORLLrP%}fQtP0{d&;MqoWD_M?(%{1Px1em0x0! zp1b;vU@T0dUi_$1B7^Y@_^IhEMNf!K>U0m`ordlQn4Pp@T{F!o8v(fG`e-4D{Ao|d ztJ1~`gV0<7<@wYxItUswx7y-fxq>Fq9FFNcq-qJ%$ZsfV_~ZmJT)U#j^iazbJJD+rhsXNNh%2%I$=_CR)5-uho3*&2k~khRb|l|J?5RI*(6ELdhmN`zwWxBWGB$Vn5T zgok2dTkF%;E6Iu%INDVh+G*armZp&>W0cIcy)gqZcu})A!a=87T;t z2CQ-OXpQ?ex2sxJAxDQeP&>rKrUy%^GxVnkxS~HbdcK$o)0-dJ`QL3rQ3ecCf_asd zU<|;2okcsSXj;*B8gw6B3$v|o*?3!%d2X)k@A@mg!4ymu&K68O;4Xi7(V`P z@!X?MJJ}t!ML{=3KKwnddR1s*`{Y2fQ|^OWD}6JyP3rx8x2w4dc5`cBp=9@&4hVVI z7O4YzB}#8J8n#F?Dwa`^z)Q=v+zcl*j!$_N_I?^3-J9&@8SmXiS`of8b6$>NH00bd7fCsgZl7;VBbEDiFe; zUhuP^FD<0)L~iyQy8yO?b;`N+(513P?Dmd%f+5GCNfeb#l*U4;#eEl+Ux4>%+o#iD zR%EJ!i9ESD7$BeUm6OmL|BS+N{Wh9U*ZN>8}SW1#8x-IP1b&0>x56Td(AD_K2R!3&27J2l)4{AU-yv! z3MwtpDcAZ}9yFcx5o_A*Z6_IO)sk=R?v@(DYUcGR25saiTK94yTu`us8Ig0@8XQ)I zXUwQZrIYlW!mZi&7HSKL#;Jz62hKOx$7GSqSw2_6Nl8iFr+lMCyWig0+7kkynxjh_ zOWqq8_?$_-|7?bGCUDyN?&Wb;L{sJ*AUJ%%hojmOhk-vmMK#N}JgYuI%(@MGI4`lC z^rb`3<1dfVER;E_eMY#yiHM2M?hh+Bzr7|Cb#h`?Q&$Jh*@1$a8*g0j0x}d6ml|4# zwkvej^UmY(tY0&7D2qDdF~fZYB|HxabdDYb4)Z*1yU{3sUG7h7%3r5)*-Ui!`!ng( zy%BIf>6yw`&{QQ7oEKJ#-Ze{CadfPt&r+b<$*V30{P3}Pr%Yw?Ay z=()~ldH`&tsd_G@7BnJ6$JN-l>Zgm;R779@od`P^8#$MP0)KydIH~lE8|RJLNc6}I zt&;sxqeK7G&1&>vWe1sMhHIi#MUH_LGe`rcdaq0^7HgH)EeRsQA zm08%l?AL`=Rc{p%nZOTfxzN@2KAl+AjM) zEUm)6cz{q13shcH2Qkxl%lnxRUsA+cGj$}JKN0PFB+(MfaV1*NrHE7G4hH+oRp?vW zM%$jR095D%A>@$$bA33cA~L0iBWtz{RZLx+UA9Q$anS0L4J=S}p30TMN_Ux(JMhMf z<)u8e`TZT`Kmda-9kU3j@Kw#aizu@qnzYkdf`;+0ga~y-MF`O`E9qQerdLS`$^ie% zlvs!RsevmrQI2doTBh$e@TAC)Gu)>0I*PZEd&9-j)YI(EH)czO9>}<{P8TStZ^rpu zl^X8jjLTBQ2H;vB%;g&y>F|Lr7{QHf%1I5(W`UF8$VW@s-_GeSz|Q4JH0o`JoArlX zMc7v@A5?=|%daDmBH?WtcDMcE8w)6bKd4ggopsd&7(norSQZ%*ya%lLX zGwMd+OSAg&eB*fY$Guc%ohn)|uvop&ZAtX9W%UV@N*eN)|82M`x}-FH;C8UnQpeB- zO0=NR=Dz3;sy>$d(wHZqP?Y@v{l@V(DDZA|MEO|eAS+37bcmeT&JZf>par22e&!Gr zn!=0gi`);|jsj`iTINZ7M%mL8_luO9fEv#E-*%I;*)Q|@MqB3ji%rFw)9!Y>Je`(s ztQv0WH_KZ))*z4TyZ^~wDbyP=M@HPItA626FdSfqt8a-TN0@r;GA?wphx6MQZHOBV z3Y9K5az|lmarJytY7qCG5K9~TBLlg@F5TW#XUS?}^rgVCDzOmp@CCbzRRC#)sGkn^ z5T=yrwdoz(K9jg|XCM?kK0cg>=IZl3TC=#dl9S*di-NrTZ=1@tg42)V{x1)Pu4Gfy z{@oZnMLJQO-GeUNG&D4f0rH};qD-SPUE7x0-H5GW19WK}AK?pone9_KzXVC-=PsFZ(?l`#ID++-^pn z6^cBebUYn9XciX2@Te~w`XGdi-ioP|9PI4kphJ~d8S1x#Yl}u-MlZ>=d;hsAqIipQom#G*%NwY?%q|V~=UOG*j28QK;h6%Jcf@ zv?HflV&aU3zM)``gHQo8@@s4k6xvlmrc<){saU zy)1F`8A@MbGDgByTR90H_YAh{kJUh^;?ISYj|`$*T0I#3f7ffPs}1ly_u|!+!H3s% zJf4NRmuPgP`j&d~ zFVL5Z-YL&UhVgf^cF88f#V9)v;&0Xe(JBK^r`iQyIT)6L93BC-{bcHK)c$n6wBzct z)jk+US2`k~ttK|R1BICria1}*eA;|1a{J9s>z2>s?@w#B1R`w9QG10~jE%DNKg2fX z39fGJR&(g`M1ymgwLI>Ke}tj?0Vq`JV%d+Q*-?!w!v;4+Q@cLO=s_H{^_zl2M`7wa zHHqx>(!orrCVAM%J%s}90A!l|_A*rDG22he;{oX6HFnZDHA9ws91X0>0;N*-qzkEx z>&lB3e)3WeWj%(lf5u$;5jNlq9H^$wb$7?RB&5El2u~?B)RTvxg+@Si+jm=b)RpdC z#ZX?R|I?viTH!j>>U$9viX=PFPagwV)C$VyMcDU(1EyU2Ek;zrN`f1%1WLOY7F1)X z`Y_~X@q3N(h{7(1sS}Kk)78X)e>GepDqSM(=3)xUk@cENn_daI!L4N6*zmmpw+VPT zdXw#}CJho;KYtc=Gx-Hp1U{H+NB@DbgQEFLjQzFw^&9`lS5%<$@8dyWJ3G6=v<~YP z4-~Gx(}=@9bn(?>-aI06o7I(w&4v~s+Dg`4vE#TM4Y^O2J0#dCqq|*u5v=WddK-b* zA!Woi0eg-FG}UE>OdGU>jVdRi2}zT(1}_)mB6Hr^yFgKLyO$gNcg6dZs}g>jIpw1` z@`XGF>TVAP=zz?J3}Qx_qs&ZLHU1;%ny@j~YrRxo>$5v)=h=XpYVfB;{***a&8JSY9Xft79ZF5aESbn99mT!WKi?*0%Ea&3IeqmP02%p?K<_r>A zIDONtAi*F6HuZYFJXL>6($d2ZyWkI}k{z0sf8NPbQ|VA?0e>;yfR0#~a-v<#8i+$- zpr@2w;x6mu(Q>Ahc9>tbx!DYPQ5|N^cMj-G#V9&7lwBWt|3DEzDV>@Hydcm4CU6O3 z!Vk7r!%G5ORf!7p%_vf{j2fB?jafqUq# zN{v^&8O3mV()t){*O!f+@PmkJ7nI}fai#7ik`HR1G>ivlqO#xcKKJ23n)3->?bru! z)n4skx)-QqRp1bqool36t^Y=2)o3ita7*=*ywUjdsgTxKNl8gFja6kp!|pf$vf~q>&4%k`D8dl^G#hxr$o!wRmQ?1 zncubKKmuySK=`GGwRpP5C6JTV!2OTwK@RirfzvuBq8u;pCWJ#HB&}m`sHNty1)>f- zcPzk!-}9(n*0KC2yuVS_Ix1NIGRyYN@qc+Pp}L9^IOzoRqGG(+IJA1isW$JM627H8 zXZ1v!q$5skla0N}-1~)g%Hx|UGteOFH;QSh!Df~7m9Vg8v<@UHt9Oa1A$8%%fiQcs zgim+dtM8{Ebc3%vJv}{u3#j&eaI0sDWBR}{3>j{gVHcL!ar(f(0Dc1NpLM>%D%$iG zQN87Df4;Y=Cw(#0-=efajpy>ndkF|D68Njjh7+s9tj(cjde#_>h7aQ4P#;xYQ}BJb z*5oSJuC*xcWHfa%=vXEZoXHn&itrYQ~z4zUAk|uW~52kLS zQQs}tdX#=a`pE;dBc!`I(`h7kg$ct#0_8;AauJ~HM?ec$<%s^`qaZ+`P-~$~Q37t; zWSu+}yzMv*eH7JLN}6v9TF`nrkgQh=gsP~bqA&a%-DRz=Y)5<}3R>(zrkCzVx62k3 zg&%W9N@wgN&3|odM}|8Cl`>iLs8YPyceZXFS?QhuAbr&VfH0Q^OS78uSw97jRbt$c z%l`Do2t^@kQ(9_G4QnO#DvkS}X6bQ?CX7ms*H?km`4M$BP7AX-9wiBiEhv?uVS0w^b}ALFP${A-)b zIP%$4?L?!o*$1$k2S9%Fc&|}nL*IO6tBJE;0gz@&#QbqiQ?OV^JxeU|Hwg!Kyrl`oLwj5Ev*F}g$EE$_^7@>%x z8cL?;7^E(%5fs3NE-0c%yRjSRDb7)Ga197LP3^NXz;IlsuRdFd&o{f4rlN@5rjHTK1ur;CiCe;PKB~VIdia(`|>E9 z%>hqAA9uM~lkI>}E-rD0KV^kZ^?jMsi#2*OTOw`wJurN)woLrInn#uP0_kEm#7hJI&}iiIZF=o z;$IhUgUXZLFKo-^>s|?Pzc=kFudRlE_4QBLA)A`W)I0W-Ec>q7(jJ69V@Qbbv0(P(NZw zS!-dH@32}A3BB}C(0ewAHlv)i_vc-*1LFSdOW!t)7EZ+bqz7x>y~ZMg(LCS4)K%6) zi0xH3TL)yu2;R(O_|?H1r@AP?XpFHTJ#9BD5e98u#o-Dq#M%fFvwo;RuN<4gYBq~@ zo)IFXsai~LDake&Q1tFMEdfdjz6!Dzi$Uw>Bo{0>Ik^&t;Z=A!3*MydKJx;!gVaUl zVeqYL_M#b^wTlVm0e0x)KFXWT5t|%kv{EB#GS4mS`otKf+qsMZBmKdz7jw;u7#J8O z(Xv_v2@8xxHYIbo6c1yz_3zt}A&;8EL)Y3d&J2fAk{Q@;z||r71Gc0!!;cfmoz=K9 z5i7Mz8f{vW#X75!aYYNE!m)^SodP^(m&F6?s;7Mt>MZgwQQYvltMg`aS+pCLj*ol| z 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 LDoRv{ef9fa!F!x= literal 0 HcmV?d00001 diff --git a/dsa/beginner/images/graphs3.png b/dsa/beginner/images/graphs3.png new file mode 100644 index 0000000000000000000000000000000000000000..525b8401480efe4a728ecbce95e367c876f2c8f5 GIT binary patch literal 19449 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 OZ3)B#`Loeyseb?o13m%( literal 0 HcmV?d00001 diff --git a/dsa/beginner/images/graphs4.png b/dsa/beginner/images/graphs4.png new file mode 100644 index 0000000000000000000000000000000000000000..a06f06f57d2599d2b35109e717f4a453559d22fb GIT binary patch literal 19576 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 literal 0 HcmV?d00001