একটি গ্রাফের সংলগ্ন তালিকা উপস্থাপনা লিঙ্কযুক্ত তালিকা উপস্থাপনা। এই উপস্থাপনায় আমাদের তালিকার একটি অ্যারে আছে অ্যারের আকার হল V। এখানে V হল শীর্ষবিন্দুর সংখ্যা। অন্য কথায়, আমরা বলতে পারি যে আমাদের কাছে বিভিন্ন তালিকার V সংখ্যা সংরক্ষণ করার জন্য একটি অ্যারে রয়েছে। যদি একটি তালিকা শিরোনামটি vertex u হয়, তাহলে এটি বোঝায় যে এটি u এর সমস্ত সন্নিহিত শীর্ষবিন্দুকে ধরে রাখবে।
সংলগ্নতা তালিকা উপস্থাপনের জটিলতা
-
এই উপস্থাপনাটি অনির্দেশিত গ্রাফের জন্য O(V+2E) এবং নির্দেশিত গ্রাফের জন্য O(V+E) নেয়। যদি প্রান্তের সংখ্যা বাড়ানো হয়, তাহলে প্রয়োজনীয় স্থানও বাড়ানো হবে।
ইনপুট :
আউটপুট :
অ্যালগরিদম
add_edge(adj_list, u, v)
ইনপুট :একটি প্রান্তের u এবং v {u,v}, এবং সংলগ্ন তালিকা
আউটপুট :গ্রাফ G
এর সংলগ্নতা তালিকাসূচীতে v যুক্ত করা শুরু করুনউদাহরণ কোড
#include#include #include
namespace ব্যবহার করে std;void displayAdjList(list adj_list[], int v) { for(int i =0; i "; তালিকা ::পুনরাবৃত্তিকারী এটি; for(it =adj_list[i].begin(); it !=adj_list[i].end(); ++it) { cout <<*it <<""; } cout < adj_list[], int u, int v) { // তালিকা uতে v যোগ করুন, এবং u তালিকা v adj_list[u].push_back(v); adj_list[v].push_back(u);} main(int argc, char* argv[]) { int v =6; //গ্রাফে 6 টি শীর্ষবিন্দু আছে // তালিকার একটি অ্যারে তৈরি করুন যার আকার 6 তালিকা adj_list[v]; add_edge(adj_list, 0, 4); add_edge(adj_list, 0, 3); add_edge(adj_list, 1, 2); add_edge(adj_list, 1, 4); add_edge(adj_list, 1, 5); add_edge(adj_list, 2, 3); add_edge(adj_list, 2, 5); add_edge(adj_list, 5, 3); add_edge(adj_list, 5, 4); displayAdjList(adj_list, v);} আউটপুট
0--->4 31--->2 4 52--->1 3 53--->0 2 54--->0 1 55--->1 2 3 4