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

C++-এ দেওয়া ডিগ্রি সিকোয়েন্স (Degree Sequence) দিয়ে গ্রাফ কনস্ট্রাকশন সম্ভব কিনা চেক করা


এটি একটি প্রোগ্রাম যা দেওয়া ডিগ্রি সিকোয়েন্স (degree sequence) দিয়ে গ্রাফ কনস্ট্রাকশন (graph construction) সম্ভব কিনা তা চেক করে।

ইনপুট (Input)

এজ (edges) এবং ভার্টেক্স (vertexes) সংখ্যা নেওয়া হয়।

আউটপুট (Output)

জেনারেট করা র‍্যান্ডম গ্রাফের ভ্যালুগুলো দেখানো হয়।

এলগরিদম

Begin
    Function RandomGraphs() ডিক্লেয়ার।
    NoEdge, NoVertex ইন্টিজার হিসেবে প্যারামিটার।
    i, j, e[NoEdge][2], c ইন্টিজার।
    i = 0 ইনিশিয়ালাইজ।
    while (i < NoEdge)
        e[i][0] = rand()%NoVertex+1.
        e[i][1] = rand()%NoVertex+1.
        if(e[i][0] == e[i][1]) continue.
        else
            for(j = 0; j < i; j++)
                if((e[i][0]==e[j][0] && e[i][1]==e[j][1]) || (e[i][0]==e[j][1] && e[i][1]==e[j][0])) i--.
            i++.
        "The randomly generated graph:" প্রিন্ট।
    for(i = 0 to NoVertex-1)
        c = 0.
        "Vertex number " প্রিন্ট।
        ভার্টেক্স নম্বর প্রিন্ট।
        for(j = 0 to NoEdge-1)
            if(e[j][0] == i+1) e[j][1] প্রিন্ট, c++.
            else if(e[j][1] == i+1) e[j][0] প্রিন্ট, c++.
            else if(j == NoEdge-1 and c == 0) "This vertex is isolated!!!" প্রিন্ট।
End
Begin
    edg, ver ইন্টিজার।
    "generation of a random graph:" প্রিন্ট।
    "Enter the number of vertexes for the graph: " প্রিন্ট, ver ইনপুট।
    "Enter the number of edges for the graph: " প্রিন্ট, edg ইনপুট।
    RandomGraphs(edg, ver) কল।
End.

উদাহরণ

#include <iostream>
#include <stdlib.h>
using namespace std;

void RandomGraphs(int NoEdge, int NoVertex) {
    int i, j, e[NoEdge][2], c;
    i = 0;
    while(i < NoEdge) {
        e[i][0] = rand()%NoVertex+1;
        e[i][1] = rand()%NoVertex+1;
        if(e[i][0] == e[i][1]) continue;
        else {
            for(j = 0; j < i; j++) {
                if((e[i][0] == e[j][0] && e[i][1] == e[j][1]) || (e[i][0] == e[j][1] && e[i][1] == e[j][0]))
                    i--;
            }
        }
        i++;
    }
    cout << "The randomly generated graph: \n";
    for(i = 0; i < NoVertex; i++) {
        c = 0;
        cout << "Vertex number " << i+1 << ": \t { ";
        for(j = 0; j < NoEdge; j++) {
            if(e[j][0] == i+1) { cout << e[j][1] << " "; c++; }
            else if(e[j][1] == i+1) { cout << e[j][0] << " "; c++; }
            else if(j == NoEdge-1 && c == 0) cout << "This vertex is isolated!!!";
        }
        cout << " }\n";
    }
}

int main() {
    int edg, ver;
    cout << "generation of a random graph: ";
    cout << "\nEnter the number of vertexes for the graph: "; cin >> ver;
    cout << "\nEnter the number of edges for the graph: "; cin >> edg;
    RandomGraphs(edg, ver);
}

আউটপুট

generation of a random graph:
Enter the number of vertexes for the graph: 5
Enter the number of edges for the graph: 5
The randomly generated graph:
Vertex number 1: { 5 3 }
Vertex number 2: { 3 5 }
Vertex number 3: { 2 5 1 }
Vertex number 4: { This vertex is isolated!!! }
Vertex number 5: { 1 3 2 }
  1. C++-এ ম্যাট্রিক্সের যেকোনো সাব-ম্যাট্রিক্সের সর্বোচ্চ ট্রেস (Trace) বের করা

  2. C++-এ DFS ব্যবহার করে গ্রাফ বাইপার্টাইট (Bipartite) কিনা তা যাচাই করুন

  3. C++-এ দেওয়া সিকোয়েন্সের যোগফল

  4. C++-এ একটি ট্রি গ্রাফ লিনিয়ার কিনা তা যাচাই করা