মডিউল ১৩_৮ঃ এডজেসেন্সি ম্যাট্রিক্স টু এজ লিস্ট
এখন আমরা দেখবো কিভাবে এডজেসেন্সি ম্যাট্রিক্স থেকে এজ লিস্ট এ কনভার্ট করা যায়।


এখন আমরা এজ গুলোকে রাখার জন্য একটা ভেক্টর অব পেয়ার নিব।
এখন ম্যাট্রিক্স এর প্রতি সেল এ যাবো এবং চেক করবো যে ওই সেল এর ভ্যালু ১ কিনা। যদি হয় সেই ক্ষেত্রে তাকে ভেক্টরে পুশ করে দিব। এই ক্ষেত্রে একটা কন্ডিশন ভুলে গেলে চলবে না। সেটি হচ্ছে যদি সারি ও কলাম নাম্বার সেইম হয় তাহলে সেটা সেলফ নোড বোঝায় সেটিকে পুশ করা যাবে না।

// Some code
vector<pair<int, int>> edgeList;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (mat[i][j] == 1 && i != j)
{
edgeList.push_back({i, j});
}
}
}
যদি weighted গ্রাফ থাকে সেই ক্ষেত্রে শুধু কন্ডিশনে একটু পরিবর্তন আসবে।
সেটি হচ্ছে সেই ক্ষেত্রে আমরা চেক করব ম্যাট্রিক্সের সেল এর ভ্যালু যদি ০ থেকে বড় হয় তাহলে পুশ করে দিব।
// Some code
vector<Edge> edgeList;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (mat[i][j] > 0)
{
edgeList.push_back(Edge(i, j, mat[i][j]));
}
}
}
Last updated