প্রোগ্রামিং-এ ডেটা টাইপ ডেটার ধরন এবং প্রকৃতি নির্দেশ করে যা ব্যবহারকারী ব্যবহার করতে চান। এটি হলো ডেটা টাইপ যা কম্পাইলার বা ইন্টারপ্রেটার হ্যান্ডেল করতে যাচ্ছে এবং মেইন মেমরিতে সংশ্লিষ্ট স্টোরেজ লোকেশন প্রদান করে। এখন ডেটা সংরক্ষণের জন্য আমরা ডেটার প্রকৃতির উপর ভিত্তি করে ভিন্ন ভিন্ন ডেটা স্ট্রাকচার চালু করেছি। যেহেতু ডেটা মূলত লিনিয়ার এবং নন-লিনিয়ার শ্রেণিতে বিভক্ত, তাই নির্দিষ্টভাবে নন-লিনিয়ার ডেটার জন্য গ্রাফ এবং ট্রি কনসেপ্ট আছে যাতে এমন ডেটা ভালোভাবে বোঝা যায়।
যেহেতু গ্রাফ এবং ট্রি দুটোই নন-লিনিয়ার ডেটা প্রতিনিধিত্ব করতে ব্যবহৃত হয়, তাই উভয়কেই কিছু সাধারণ বৈশিষ্ট্য আছে কারণ উভয়ই নোড এবং এজ নিয়ে গঠিত। কিন্তু উভয়ের মধ্যে কিছু পার্থক্যও আছে যা নিচে তালিকাভুক্ত:
গ্রাফ এবং ট্রির মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলো:
| ক্র. নং | কী | গ্রাফ | th style="text-align:center;">ট্রি|
|---|---|---|---|
| ১ | সংজ্ঞা | গ্রাফ হলো নন-লিনিয়ার ডেটার গ্রাফিক্যাল রিপ্রেজেন্টেশন যেখানে ডেটা নোড দ্বারা 표기 করা হয় এবং তাদের মধ্যে সম্পর্ক সংযোগ পথ দ্বারা দেখানো হয় যাকে এজ বলা হয়। | অন্যদিকে ট্রিও নন-লিনিয়ার ডেটা প্রতিনিধিত্ব করতে ব্যবহৃত হয় কিন্তু স্তরক্রম (hierarchy) প্রেক্ষাপটে যেখানে ডেটা আবার নোড দ্বারা দেখানো হয় এবং এর পরবর্তী ডেটা ঠিক নিচের নোড দ্বারা চাইল্ড নোড/স হিসেবে দেখানো হয়। |
| ২ | বাস্তবায়ন | নন-লিনিয়ার ডেটার রিপ্রেজেন্টেশনের জন্য গ্রাফ এভাবে বাস্তবায়ন করা হয় যে নোডগুলো সংযুক্ত থাকতে পারে বা নাও থাকতে পারে অথবা নোডগুলোর মধ্যে সেলফ-লুপ (self-loops) থাকতে পারে ডেটার সংযোগ প্রতিনিধিত্ব করতে। | অন্যদিকে ট্রি এভাবে বাস্তবায়ন করা হয় যে প্রতিটি নোডের অবশ্যই তার প্যারেন্ট থাকবে রুট বা প্রথম নোড ছাড়া এবং অবশ্যই অন্য কোনো নোডের সাথে সংযুক্ত থাকবে অর্থাৎ কোনো নোড অন্য নোড ছাড়া অস্তিত্বে থাকতে পারবে না। এছাড়া ট্রির ক্ষেত্রে লুপ বা সেলফ-লুপ থাকার কোনো সুযোগ নেই কারণ ডেটা রিপ্রেজেন্টেশন স্তরক্রমমূলক। |
| ৩ | ডেটা সার্চিং | যেহেতু গ্রাফে সেলফ-লুপ থাকতে পারে তাই ট্রভার্সাল পদ্ধতিতে ডেটা সার্চ করা কঠিন। ব্যবহারকারীকে ডটগুলো সংযোগ করে পেতে হয় প্রত্যাশিত ডেটা। | অন্যদিকে ট্রির ক্ষেত্রে ডেটা নোড হিসেবে দেখানো হয় যা স্তরক্রমমূলকভাবে সংযুক্ত থাকে তাই ট্রভার্সাল সার্চ ব্যবহারকারী করতে পারে নির্দিষ্ট লেভেলের ট্রিতে প্রত্যাশিত ডেটা খুঁজে বের করতে। |
| ৪ | প্যারেন্ট-চাইল্ড সম্পর্ক | যেহেতু গ্রাফ ডেটাকে স্তরক্রমমূলকভাবে প্রতিনিধিত্ব করে না তাই ডেটা রিপ্রেজেন্টেশনে প্যারেন্ট চাইল্ড সম্পর্ক থাকে না অর্থাৎ গ্রাফের ক্ষেত্রে এমন কোনো প্যারেন্ট নোড বা চাইল্ড নোড নেই। | অন্যদিকে ট্রির ক্ষেত্রে ডেটা স্তরক্রমমূলকভাবে রিপ্রেজেন্ট করা হয় তাই নোডগুলোর মধ্যে প্যারেন্ট থেকে চাইল্ড সম্পর্ক থাকে এবং হ্যাঁ ট্রির ক্ষেত্রে প্যারেন্ট নোড ও চাইল্ড নোড উভয়ই থাকে। |
| ৫ | বিপরীত পক্ষ | গ্রাফের ক্ষেত্রে আমরা বলতে পারি যে সব গ্রাফ ট্রি নয়। | অন্যদিকে ট্রির ক্ষেত্রে আমরা বলতে পারি যে সব ট্রি গ্রাফ। |
| ৬ | ব্যবহার | গ্রাফের প্রধান ব্যবহার কালারিং এবং জব শিডিউলিং। | অন্যদিকে ট্রির প্রধান ব্যবহার সর্টিং এবং ট্রভার্সিং। |