কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে গ্রাফ তৈরি করা


আমরা একটি গ্রাফ ক্লাস তৈরি করব যা ওয়েট এবং ডাইরেক্টেড/আনডাইরেক্টেড দুটি টাইপ সাপোর্ট করবে। এটি এডজেসেন্সি লিস্ট ব্যবহার করে বাস্তবায়ন করা হবে। আরও এডভান্সড কনসেপ্টের দিকে যাওয়ার সাথে সাথে ওয়েট এবং গ্রাফের ডাইরেক্টেড নেচার কাজে লাগবে।

এডজেসেন্সি লিস্ট হলো আলাদা লিস্টগুলোর একটি অ্যারে A। অ্যারে প্রতিটি এলিমেন্ট Ai হলো একটি লিস্ট, যেটি সেই ভারটেক্সগুলোক ধারণ করে যা ভারটেক্স i-এর সাথে এডজেসেন্ট। আমরা এটি ২টি মেম্বার দিয়ে ডিফাইন করছি: nodes এবং edges।

আসুন গ্রাফ ক্লাস সেট আপ করি আমাদের ক্লাস ডিফাইন করে এবং কিছু মেথড দিয়ে যা আমরা নোড এবং এজ যোগ করতে ব্যবহার করব।

আমরা প্রাথমিকভাবে নিচের মেথডগুলো ডিফাইন করব:

  • addNode: গ্রাফে একটি নোড যোগ করে
  • addEdge: গ্রাফে একটি আনডাইরেক্টেড এজ যোগ করে
  • addDirectedEdge: একটি ডাইরেক্টেড এজ যোগ করে

উদাহরণ

class Graph {
    constructor() {
        this.edges = {};
        this.nodes = [];
    }
    addNode(node) {
        this.nodes.push(node);
        this.edges[node] = [];
    }
    addEdge(node1, node2) {
        this.edges[node1].push(node2);
        this.edges[node2].push(node1);
    }
    addDirectedEdge(node1, node2) {
        this.edges[node1].push(node2);
    }
    display() {
        let graph = "";
        this.nodes.forEach(node => {
            graph += node + "->" + this.edges[node].join(", ") + "\n";
        });
        console.log(graph);
    }
}

আপনি নিচের কোড দিয়ে এই মেথডগুলো এবং আমাদের ক্লাসটি পরীক্ষা করতে পারেন:

উদাহরণ

let g = new Graph();
g.addNode("A");
g.addNode("B");
g.addNode("C");
g.addNode("D");
g.addNode("E");
g.addEdge("A", "C");
g.addEdge("A", "B");
g.addDirectedEdge("A", "D");
g.addEdge("D", "E");
g.display();

আউটপুট

এটি নিচের আউটপুট দেবে:

A->C, B, D
B->A
C->A
D->E
E->D

  1. জাভাস্ক্রিপ্টে লিংকড লিস্ট তৈরি করা (বেসিক)

  2. জাভাস্ক্রিপ্ট দিয়ে কাস্টম ইমেজ স্লাইডার তৈরি করা

  3. জাভাস্ক্রিপ্টে new কীওয়ার্ড দিয়ে অ্যারে তৈরির পদ্ধতি

  4. জাভাস্ক্রিপ্টে অটো-রিসাইজ টেক্সট এরিয়া তৈরি করা