Learn Adjacency Matrix in 10 minutes ⬜

Поділитися
Вставка
  • Опубліковано 9 лис 2024

КОМЕНТАРІ • 35

  • @BroCodez
    @BroCodez  3 роки тому +41

    public class Main {
    public static void main(String[] args) {

    // Adjacency Matrix = An array to store 1's/0's to represent edges
    // # of rows = # of unique nodes
    // # of columns = # of unique nodes

    // runtime complexity to check an Edge: O(1)
    // space complexity: O(v^2)

    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); // I forgot this line in the video
    graph.addEdge(2, 3);
    graph.addEdge(2, 4);
    graph.addEdge(4, 0);
    graph.addEdge(4, 2);

    graph.print();

    //System.out.println(graph.checkEdge(0, 1));
    }
    }
    import java.util.ArrayList;
    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();
    }
    }
    }
    public class Node {
    char data;

    Node(char data){
    this.data = data;
    }
    }

    • @sriramarajuchintalapati1304
      @sriramarajuchintalapati1304 2 роки тому

      why "nodes = new ArrayList();" , why not "nodes = new ArrayList();" in the Graph constructor?

    • @joyceasante8292
      @joyceasante8292 Рік тому

      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();
      System.out.println(graph.checkEdge(4,1));
      }
      }
      ******************************************
      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();
      }
      }
      }
      ********************************
      public class Node{
      char data;
      Node(char data){
      this.data = data;
      }
      }

    • @duy6930
      @duy6930 2 місяці тому

      @@sriramarajuchintalapati1304 In Java, the syntax nodes = new ArrayList(); is a shorthand introduced in Java 7, known as the diamond operator. It allows you to omit the generic type on the right-hand side of the assignment when the compiler can infer it from the left-hand side.

  • @fredericoamigo
    @fredericoamigo 11 місяців тому +5

    Once again, an other masterpiece from our favorite bro. Keep up the excellent work bro!

  • @soicooc3500
    @soicooc3500 6 місяців тому

    thanks i learn alot about you front html css js full cource and now i learn dsa , thank again

  • @wikkichris
    @wikkichris Рік тому +1

    bro youre carrying my comp sci exam in school thank you man

  • @yunanistan2364
    @yunanistan2364 Рік тому +1

    really really perfect approach 👍👍👍

  • @georgekon69
    @georgekon69 Рік тому +4

    Booleans are better because they take less memory

  • @elionayzuridasilveira4140
    @elionayzuridasilveira4140 29 днів тому

    Thanks for this tutorial.👏

  • @victorrezende6002
    @victorrezende6002 Рік тому

    Nice class

  • @yunanistan2364
    @yunanistan2364 Рік тому

    very nice video thanks

  • @Md.FirozeHossain
    @Md.FirozeHossain 6 місяців тому

    Can you make two video series for Spring Boot(3.2+) and Angular (15+)

  • @ReviewGame10
    @ReviewGame10 2 роки тому

    I had to do an assigment and this video saved me tyvm!!!!!

  • @Snowmanver2
    @Snowmanver2 2 роки тому +1

    The video is extremely helpful, thank you Bro!

  • @one111won
    @one111won Рік тому

    wonderful stuff

  • @CrazyD4RKiller1
    @CrazyD4RKiller1 3 роки тому +1

    Great video bro

  • @berryallen5556
    @berryallen5556 3 роки тому +1

    God bless you bro!

  • @Memes_uploader
    @Memes_uploader 2 роки тому

    Thank you for the video

  • @alaeeddinehajji
    @alaeeddinehajji 2 роки тому

    Sit back, relax and enjoy the show

  • @berryallen5556
    @berryallen5556 3 роки тому +1

    God bess you bro

  • @TheNicoya77
    @TheNicoya77 Рік тому

    Great video. It would have been nice to add how to check if there is a cycle.

  • @mmm6231
    @mmm6231 2 роки тому

    Great!!

  • @tarekghosn3648
    @tarekghosn3648 2 роки тому

    here's a variable in java. 2 vids later. build a matrix why not... while your at it!

  • @MrLoser-ks2xn
    @MrLoser-ks2xn Рік тому

    Thanks!

  • @nik1andr22
    @nik1andr22 3 роки тому +1

    Would it be better to use a boolean matrix instead of an int one?

    • @silverseltzer2739
      @silverseltzer2739 Рік тому

      Booleans in Java are printed as true or false. A boolean matrix would display “true” or “false” instead of the zeros and ones we want in our adjacency matrix.

  • @bulentoral1177
    @bulentoral1177 Рік тому

    Love you Bro

  • @musicsadboizz
    @musicsadboizz Рік тому

    nice man

  • @eugenezuev7349
    @eugenezuev7349 2 місяці тому

    consumable

  • @wWvwvV
    @wWvwvV Рік тому +1

    I stopped here 3:34.

  • @nailcutter8920
    @nailcutter8920 Рік тому

    why 1 is only between A and B, and not between B and A?

    • @anthonymartinez71604
      @anthonymartinez71604 11 місяців тому

      Because the first is the source while the second is the destination. The edge only goes from A to B, not B to A

    • @nailcutter8920
      @nailcutter8920 11 місяців тому

      @@anthonymartinez71604 thx!