আমরা একটি গ্রাফ ক্লাস তৈরি করব যা ওজন এবং নির্দেশিত এবং অনির্দেশিত উভয় প্রকারকে সমর্থন করে৷ এটি একটি সংলগ্ন তালিকা ব্যবহার করে বাস্তবায়ন করা হবে। আমরা যখন আরও উন্নত ধারণার দিকে যাচ্ছি, গ্রাফের ওজন এবং নির্দেশিত প্রকৃতি উভয়ই কাজে আসবে৷
একটি সংলগ্ন তালিকা হল পৃথক তালিকার একটি অ্যারে। অ্যারের প্রতিটি উপাদান হল একটি তালিকা, যেখানে শীর্ষবিন্দু i এর সংলগ্ন সমস্ত শীর্ষবিন্দু রয়েছে। আমরা 2 সদস্য, নোড এবং প্রান্ত ব্যবহার করে এটি সংজ্ঞায়িত করছি।
আসুন আমাদের ক্লাস এবং কিছু পদ্ধতি নির্ধারণ করে গ্রাফ ক্লাস সেট আপ করি যা আমরা আমাদের গ্রাফে নোড এবং প্রান্ত যোগ করতে ব্যবহার করব।
আমরা প্রাথমিকভাবে নিম্নলিখিত পদ্ধতিগুলি সংজ্ঞায়িত করব -
- 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