গ্রাফ একটি নন-লিনিয়ার ডেটা স্ট্রাকচার। এটি নোড ব্যবহার করে ডেটা রিপ্রেজেন্ট করে এবং এজ ব্যবহার করে তাদের রিলেশন। একটি গ্রাফ G-র দুটি অংশ রয়েছে। ভার্টেক্স, এবং এজ। ভার্টেক্স সেট V দিয়ে রিপ্রেজেন্ট করা হয়, এবং এজ সেট E দিয়ে। তাই গ্রাফের নোটেশন G(V,E)। একটি উদাহরণ দেখি ধারণা পেতে।

এই গ্রাফে পাঁচটি ভার্টেক্স এবং পাঁচটি এজ রয়েছে। এজগুলো ডিরেক্টেড। উদাহরণস্বরূপ, যদি আমরা B এবং D ভার্টেক্স কানেক্ট করার এজ বেছে নেই, তবে সোর্স ভার্টেক্স B এবং ডেস্টিনেশন D। সুতরাং আমরা B থেকে D যেতে পারি কিন্তু D থেকে B যেতে পারি না।
গ্রাফগুলো নন-লিনিয়ার, এবং এর কোনো রেগুলার স্ট্রাকচার নেই। মেমরিতে একটি গ্রাফ রিপ্রেজেন্ট করার জন্য কিছু ভিন্ন স্টাইল রয়েছে। এগুলো হল -
- অ্যাডজেসেন্সি ম্যাট্রিক্স রিপ্রেজেন্টেশন
- এজ লিস্ট রিপ্রেজেন্টেশন
- অ্যাডজেসেন্সি লিস্ট রিপ্রেজেন্টেশন
এখানে আমরা অ্যাডজেসেন্সি লিস্ট রিপ্রেজেন্টেশন দেখব -
অ্যাডজেসেন্সি লিস্ট রিপ্রেজেন্টেশন
এই রিপ্রেজেন্টেশনকে অ্যাডজেসেন্সি লিস্ট বলা হয়। এই রিপ্রেজেন্টেশন লিংকড লিস্টের ওপর ভিত্তি করে। এই পদ্ধতিতে, প্রতিটি নোড নোডের একটি লিস্ট ধারণ করে, যেগুলো সেই ভার্টেক্সের সাথে সরাসরি কানেক্টেড। লিস্টের শেষে, প্রতিটি নোড নাল ভ্যালুর সাথে কানেক্টেড থাকে যাতে বোঝা যায় সেটি সেই লিস্টের শেষ নোড।
