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

স্টার গ্রাফ যাচাই (Check For Star Graph)

একটি গ্রাফ দেওয়া আছে; আমাদের কাজ হলো যাচাই করা যে প্রদত্ত গ্রাফটি একটি স্টার গ্রাফ কিনা।

গ্রাফটিকে ট্রাভার্স করে, আমাদের ডিগ্রি ১ دار যেসব ভার্টেক্স এবং ডিগ্রি n-1 دار যেসব ভার্টেক্স তাদের সংখ্যা বের করতে হবে। (এখানে n হলো প্রদত্ত গ্রাফের ভার্টেক্সের সংখ্যা)। যখন ডিগ্রি ১ دار ভার্টেক্সের সংখ্যা n-1 এবং ডিগ্রি (n-1) دار ভার্টেক্সের সংখ্যা ১ হয়, তখন সেটি একটি স্টার গ্রাফ।

স্টার গ্রাফ যাচাই (Check For Star Graph)

ইনপুট এবং আউটপুট

ইনপুট: অ্যাডজেসেন্সি ম্যাট্রিক্স:
0 1 1 1
1 0 0 0
1 0 0 0
1 0 0 0
আউটপুট: এটি একটি স্টার গ্রাফ।

এলগরিদম

checkStarGraph(graph)

ইনপুট: প্রদত্ত গ্রাফ।

আউটপুট: গ্রাফটি স্টার গ্রাফ হলে true।

শুরু
  degOneVert := 0 এবং degNminOneGraph := 0
  যদি গ্রাফে শুধু একটি ভার্টেক্স থাকে, তবে
    return true, যদি কোনো সেলফ-লুপ না থাকে
  অন্যথায় যদি গ্রাফে দুটি ভার্টেক্স থাকে, তবে
    return true যদি দুটি ভার্টেক্সের মধ্যে শুধু একটি এজ থাকে
  অন্যথায়
    গ্রাফের সব ভার্টেক্স i এর জন্য, করুন
      degree := 0
      i-র সাথে সন্নিহিত সব ভার্টেক্স j এর জন্য, করুন
        degree := degree + 1
      শেষ লুপ
      যদি degree = 1, তবে
        degOneVert := degOneVert + 1
      অন্যথায় যদি degree = n-1, তবে
        degNminOneGraph := degNminOneGraph + 1
    শেষ লুপ
    যদি degOneVert = n-1, এবং degNminOneGraph = 1, তবে
      return true
    অন্যথায় return false
শেষ

উদাহরণ (C++ কোড)

#include <iostream>
#define NODE 4
using namespace std;

int graph[NODE][NODE] = {
  {0, 1, 1, 1},
  {1, 0, 0, 0},
  {1, 0, 0, 0},
  {1, 0, 0, 0}
};

bool checkStarGraph() {
  int degOneVert = 0, degVert = 0;
  // প্রাথমিকভাবে ডিগ্রি ১ এবং ডিগ্রি n-1 دار ভার্টেক্স ০
  if (NODE == 1)  // যখন শুধু একটি নোড
    return (graph[0][0] == 0);
  if (NODE == 2)
    return (graph[0][0] == 0 && graph[0][1] == 1 && graph[1][0] == 1 && graph[1][1] == 0);
  for (int i = 0; i < NODE; i++) {
    // ২-এর বেশি গ্রাফের জন্য
    int degree = 0;
    for (int j = 0; j < NODE; j++)  // ভার্টেক্স i-এর ডিগ্রি গণনা করুন
      if (graph[i][j])
        degree++;
    if (degree == 1)
      degOneVert++;
    else if (degree == NODE-1)
      degVert++;
  }
  // যখন শুধু একটি ভার্টেক্স ডিগ্রি n-1, এবং বাকি সব ডিগ্রি ১, তবে এটি একটি স্টার গ্রাফ
  return (degOneVert == (NODE-1) && degVert == 1);
}

int main() {
  if(checkStarGraph())
    cout << "It is a star graph.";
  else
    cout << "It is not a star graph.";
}

আউটপুট

It is a star graph.
  1. গ্রাফের জন্য ব্রেডথ ফার্স্ট সার্চ (BFS)

  2. গ্রাফের জন্য ব্রেডথ ফার্স্ট সার্চ (BFS)

  3. C++-এ ডিসকানেক্টেড গ্রাফের জন্য BFS

  4. টেক্সট প্লেজিয়ারিজম (Plagiarism) চেক করার উপায়