Тёмный

Learn Depth First Search in 7 minutes ⬇️ 

Bro Code
Подписаться 2,2 млн
Просмотров 87 тыс.
50% 1

Depth first search data structures and algorithms tutorial example explained java
#depth #first #search

Опубликовано:

 

25 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 44   
@BroCodez
@BroCodez 3 года назад
public class Main { public static void main(String[] args) { // Depth First Search = Pick a route, keep going. // If you reach a dead end, or an already visited node, // backtrack to a previous node with unvisited adjacent neighbors Graph graph = new Graph(5); graph.addNode(new Node('A')); graph.addNode(new Node('B')); graph.addNode(new Node('C')); graph.addNode(new Node('D')); graph.addNode(new Node('E')); graph.addEdge(0, 1); graph.addEdge(1, 2); graph.addEdge(1, 4); graph.addEdge(2, 3); graph.addEdge(2, 4); graph.addEdge(4, 0); graph.addEdge(4, 2); graph.print(); graph.depthFirstSearch(0); } } import java.util.*; public class Graph { ArrayList nodes; int[][] matrix; Graph(int size){ nodes = new ArrayList(); matrix = new int[size][size]; } public void addNode(Node node) { nodes.add(node); } public void addEdge(int src, int dst) { matrix[src][dst] = 1; } public boolean checkEdge(int src, int dst) { if(matrix[src][dst] == 1) { return true; } else { return false; } } public void print() { System.out.print(" "); for(Node node : nodes) { System.out.print(node.data + " "); } System.out.println(); for(int i = 0; i < matrix.length; i++) { System.out.print(nodes.get(i).data + " "); for(int j = 0; j < matrix[i].length; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(); } System.out.println(); } public void depthFirstSearch(int src) { boolean[] visited = new boolean[matrix.length]; dFSHelper(src, visited); } private void dFSHelper(int src, boolean[] visited) { if(visited[src]) { return; } else { visited[src] = true; System.out.println(nodes.get(src).data + " = visited"); } for(int i = 0; i < matrix[src].length; i++) { if(matrix[src][i] == 1) { dFSHelper(i, visited); } } return; } } public class Node { char data; Node(char data){ this.data = data; } }
@TarekBuhdeima
@TarekBuhdeima 2 года назад
I made this change to dFSHelper method to print statements to show how it travrese the matrix normally then recursivley private void dFSHelper(int src, boolean[] visited) { if (visited[src]) { return; } else { visited[src] = true; // System.out.println(nodes.get(src).data + " = visited"); } for (int i = 0; i < matrix[src].length; i++) { System.out.println(nodes.get(src).data + " = searching for neighbor to visit at " + "[" + src + ":" + i + "]"); if (matrix[src][i] == 1) { System.out.println(nodes.get(src).data + " = neighbor found at " + "[" + src + ":" + i + "]"); dFSHelper(i, visited); } } }
@joyceasante8292
@joyceasante8292 Год назад
Practicing(coding line by line) public class Main { public static void main (String[]args) { Graph graph = new Graph (5); graph.addNode (new Node ('1')); graph.addNode (new Node ('2')); graph.addNode (new Node ('3')); graph.addNode (new Node ('4')); graph.addNode (new Node ('5')); graph.addEdge (0, 1); graph.addEdge (1, 2); graph.addEdge (2, 3); graph.addEdge (2, 4); graph.addEdge (4, 0); graph.addEdge (4, 2); graph.print (); graph.depthFirstSearch (0); } } ***************************** import java.util.*; public class Graph { ArrayList < Node > nodes; int[][] matrix; Graph (int size) { nodes = new ArrayList (); matrix = new int[size][size]; } public void addNode (Node node) { nodes.add (node); } public void addEdge (int src, int dst) { matrix[src][dst] = 1; } public boolean checkEdge (int src, int dst) { if (matrix[src][dst] == 1) { return true; } else { return false; } } public void print () { System.out.print (" "); for (Node node:nodes) { System.out.print (node.data + " "); } System.out.println (); for (int i = 0; i < matrix.length; i++) { System.out.print (nodes.get (i).data + " "); for (int j = 0; j < matrix[i].length; j++) { System.out.print (matrix[i][j] + " "); } System.out.println (); } System.out.println (); } public void depthFirstSearch (int src) { boolean[]visited = new boolean[matrix.length]; dFSHelper (src, visited); } private void dFSHelper (int src, boolean[]visited) { if (visited[src]) { return; } else { visited[src] = true; System.out.println (nodes.get (src).data + " =visited"); } for (int i = 0; i < matrix[src].length; i++) { if (matrix[src][i] == 1) { dFSHelper (i, visited); } } return; } } ********************************** public class Node{ char data; Node(char data){ this.data = data; } }
@TinyBoyy28
@TinyBoyy28 5 месяцев назад
can i write dfs like this: public void DFS(int src) { System.out.print(nodes.get(src).data + " "); for(int i=0; i
@preraksemwal
@preraksemwal 2 года назад
Dude you're not just bro you're a pro-bro...I understood dfs so easily 😃
@matthews-carvalho
@matthews-carvalho 3 года назад
What is the chance of Bro Code uploading a video about DFS which is the EXACT topic that will be on my tomorrow's exam, dude... stop spying me... and thank u
@joysaha3927
@joysaha3927 3 года назад
Happy Diwali Sir ❤️🎉🎉...Keep making videos!
@dheerajkumar824
@dheerajkumar824 3 года назад
Java full lacture, python full lacture, and html css full lacture just by you man. Thanks
@enterb7643
@enterb7643 3 года назад
great video, I've watched it all already
@doonk6004
@doonk6004 3 года назад
Damn, bro. I really needed this video 3 weeks ago! Lol great video!
@AdityaKumar-vg3bp
@AdityaKumar-vg3bp 3 года назад
Happy Diwali bro 🔥
@truegrabbers
@truegrabbers 3 года назад
mind blowing, 0:55 was good one :)
@soicooc3500
@soicooc3500 6 месяцев назад
thanks man , help me a lot to deep understand
@andleebmiraan5716
@andleebmiraan5716 2 года назад
I didn't get it, what exactly is the use of this code? I mean, you said that the print statement for the visited nodes is not necessary but besides that, I cant' understand what does the code do?
@ujjwalabhishek39
@ujjwalabhishek39 3 года назад
Hey bro awesome content ❤❤❤👌👌👌👌👌👌 Plz make data structure in C# also Happy diwali 😊😊😊🙏
@adheesh2secondsago630
@adheesh2secondsago630 3 года назад
Love your content Bro :D
@kunwardeepsingh9864
@kunwardeepsingh9864 3 года назад
Nice Video :)
@ShhFah
@ShhFah 3 года назад
Love you vids bro
@OPGAMER.
@OPGAMER. 3 года назад
Happy Diwali Everyone 🙏🙏
@DetCoAnimeFan
@DetCoAnimeFan 3 года назад
Happy Diwali
@aditya_asundi
@aditya_asundi 3 года назад
Happy deepawali
@gerdsfargen6687
@gerdsfargen6687 3 года назад
Happy deepwebali
@rahulchaudhary3508
@rahulchaudhary3508 2 года назад
Happy Diwali again bruh
@jubayeralam8358
@jubayeralam8358 6 месяцев назад
​@@rahulchaudhary3508 Wtf is diwali
@MrLoser-ks2xn
@MrLoser-ks2xn Год назад
Thanks!
@sandracooper7256
@sandracooper7256 3 года назад
Thank you Bro🙂
@harshitpandit188
@harshitpandit188 3 года назад
Hello Bro!! can u plss make these algorithms in C++ or Python?? Really love your content♥♥
@BroCodez
@BroCodez 3 года назад
maybe in the playlists. I have lot of material people want me to cover
@Jukebox300Minecraft
@Jukebox300Minecraft 6 месяцев назад
Why not do it yourself?
@DineshKumar-hh8pq
@DineshKumar-hh8pq 11 месяцев назад
Bro what happens when I becomes 3 . The for completes the search and if condition doesn't execute since there is no connection from d i.e 3. The recursion should stop. But it executed for i=4 how
@huyngo2u924
@huyngo2u924 3 года назад
heap sort bro , i lov u
@cadmium4113
@cadmium4113 3 года назад
Gracias ✌️
@Naufalmlns
@Naufalmlns 5 месяцев назад
can you make it list adj version?
@tipster360
@tipster360 Год назад
👌👌👌
@joysaha3927
@joysaha3927 3 года назад
Sir, if possible, kindly make a video on the implementation of priority queues & it's theory..😇🙏
@BroCodez
@BroCodez 3 года назад
I believe I have a video on those in this playlist
@therushhourbrothers797
@therushhourbrothers797 Год назад
guys, I have been learning java for 2 months, but I can't understand why would you need an array of boolean for dfs in this case, can someone explain pls.
@DontAddMe
@DontAddMe 9 месяцев назад
I don't think it has to anything with java or any other language. The logic is to keep track of visited nodes. if its true on a given index then the node on that index is visited or else it is not visited.
@IceP67
@IceP67 3 года назад
First?
@eltons.6916
@eltons.6916 3 месяца назад
Is anyone else confused why he used a stack for the visualisation and then recursion for the implementation?
@eugenezuev7349
@eugenezuev7349 Месяц назад
sour-sweet
@mingming1869
@mingming1869 Год назад
yosh
@fyrukmcoo100
@fyrukmcoo100 3 года назад
:((
@lakewobegonesbest8725
@lakewobegonesbest8725 3 месяца назад
I think you’re missing out on a sure fire marketing opportunity: BRODER. You’re welcome.
Далее
Learn Breadth First Search in 6 minutes ↔️
6:41
Просмотров 40 тыс.
Бокс - Финты Дмитрия Бивола
00:31
LeetCode was HARD until I Learned these 15 Patterns
13:00
Depth-first search in 4 minutes
4:01
Просмотров 269 тыс.
Learn Binary search trees in 20 minutes 🔍
20:25
Просмотров 170 тыс.
Hashing Algorithms and Security - Computerphile
8:12
Depth First Search Algorithm | Graph Theory
10:20
Просмотров 471 тыс.