বাইনারি গাছগুলি শ্রেণিবদ্ধ ডেটা সংরক্ষণ করার জন্য কোনও নির্দিষ্ট উদ্দেশ্যে কাজ করে? তাদের আধ্যাত্মিক ব্যবহার কি?


12

আমি বাইনারি গাছগুলির কাঠামো এবং সেগুলি কীভাবে অনুসরণ করব তা বুঝতে পারি। যাইহোক, আমি প্রোগ্রাম এবং প্রোগ্রামিংয়ে তাদের আসল ব্যবহারগুলি, উদ্দেশ্যগুলি উপলব্ধি করতে সংগ্রাম করছি am যখন আমি শ্রেণিবদ্ধ তথ্যগুলির 'বাস্তব জীবন' উদাহরণগুলি সম্পর্কে চিন্তা করি তখন তাদের প্রায় 2 টিরও বেশি শিশু থাকে। উদাহরণস্বরূপ, একটি পরিবার গাছে, একটি মায়ের প্রায়শই দুটিরও বেশি বাচ্চা হতে পারে।

দ্রুতগতিতে অ্যারে এবং তালিকাগুলির মাধ্যমে দ্রুত প্রক্রিয়াকরণের কারণে 'বাইনারি গাছগুলি' কেবলমাত্র রৈখিক সম্পর্কিত ডেটা সংরক্ষণ করতে কার্যকর? বিকল্পভাবে, তারা শ্রেণিবদ্ধ ডেটা সংরক্ষণ করার জন্য কোনও নির্দিষ্ট উদ্দেশ্যে কাজ করে? যদি তা হয় তবে বাইনারি গাছের প্রয়োগ সম্পর্কে কোন উদাহরণ রয়েছে। কোন নোডের সর্বাধিক 2 শিশু রয়েছে এমন কী ডেটা ?


আমি মনে করি বাইনারি গাছের প্রধান ব্যবহার হ'ল ডেটা অর্ডার করা। https://en.wikedia.org/wiki/Binary_search_tree
ম্যান্ড্রিল

উত্তর:


25

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

পুরানো গেমটি মনে রাখুন যেখানে একজন ব্যক্তি 1 এবং 100 এর মধ্যে একটি সংখ্যা নিয়ে ভাবেন, এবং অপরটিকে যতটা সম্ভব কম অনুমানের মধ্যে অনুমান করতে হয়, এবং আপনি যদি ভুলটি অনুমান করেন তবে আপনি যদি খুব বেশি হন তবে আপনাকে নম্বরটি ভাবতে হবে উচ্চ বা খুব কম? এটি কিছুক্ষণ পরে বিরক্তিকর হয়ে ওঠে কারণ আপনি দ্রুত নির্ধারণ করেন যে আপনার সর্বদা 50 থেকে শুরু হওয়া উচিত, তারপরে 25 বা 75 এ যান এবং তার পরে প্রতিটি নতুন অনুমানের সাথে অর্ধেক অনুসন্ধান করার জন্য পরিসীমা ভাগ করে রাখুন এবং অবশেষে আপনি যে কোনও সংখ্যার অনুমান করতে পারবেন সর্বাধিক 7 অনুমান মধ্যে, গ্যারান্টিযুক্ত।

এটি কোনও মজাদার গেমের জন্য নাও তৈরি করতে পারে তবে সেই সম্পত্তিটি বাইনারি (এবং অন্যান্য এন-অ্যারি) গাছকে দরকারী করে তোলে: আপনি খুব অল্প সময়ের মধ্যে খুব বড় ডেটা সেট অনুসন্ধান করতে এগুলি ব্যবহার করতে পারেন।


দুর্দান্ত উত্তর আপনাকে অনেক ধন্যবাদ। সুতরাং, বাইনারি ট্রি হ'ল ডেটা সংরক্ষণের জন্য কেবলমাত্র অন্য কাঠামো যেমন আপনার কোনও অ্যারে বা একটি তালিকায় থাকে তবে দ্রুত অনুসন্ধানের সক্ষমতার অতিরিক্ত বেনিফিট সহ?
sw123456

1
@ sw123456: ঠিক আছে। যে কোনও ইঞ্জিনিয়ারিংয়ের মতো এটি ট্রেড অফস সহ আসে (একই সাথে আরও সংখ্যক উপাদানযুক্ত অ্যারের তুলনায় আরও বেশি - এবং আরও খণ্ডিত - মেমরি ব্যবহার করা হয়, O (1) O (1) এর পরিবর্তে # সেট ডেটার এলিমেন্টে অ্যাক্সেস অ্যাক্সেস ইত্যাদি) তবে দ্রুত অনুসন্ধান অবশ্যই বাইনারি গাছগুলির প্রধান সুবিধা।
ম্যাসন হুইলারের

@ sw123456 আনন্দিত আমি এটি ব্যাখ্যা করতে সাহায্য করতে পারি :)
ম্যাসন হুইলার

3
গাছের ভারসাম্য বজায় থাকলে উপাদানগুলিতে অ্যাক্সেস ও (লগ (এন)) হয়। ও (এন) সবচেয়ে খারাপ ক্ষেত্রে যখন এটি ক্ষয়িষ্ণু হবে (বেশিরভাগ নোড কেবল একটি বন্ধনী সহ)।
ম্যান্ড্রিল

@ sw123456 নেটওয়ার্কের রাউটিংয়ে একটি ট্রি নামে ডাইনারি গাছের সামান্য পরিবর্তন ব্যবহার করা হয়েছে (সমস্যাটি ডোমেনের জন্য আরও দক্ষতার জন্য তৈরি করা হয়েছে)। এটি আসলে শ্রেণিবিন্যাসের তথ্য সংরক্ষণ করে কারণ রাউটারগুলি গাছটিকে কিছুটা পর্যায়ক্রমে অনুসরণ করে যখন কোনও আইপি ঠিকানা সন্ধান করে এটি কোথায় প্যাকেটটি ফরোয়ার্ড করা উচিত। আইপি অ্যাড্রেসগুলি প্রকৃতি শ্রেণিবিন্যাসের দ্বারাও হয়, সুতরাং দীর্ঘতম উপসর্গের ম্যাচটি সন্ধান করার জন্য একটি আইপি ঘুরে দেখার সময় রাউটারটি আইপি স্তরক্রম, সাবনেট আইপি ইত্যাদির সন্ধান করে mant এটি শব্দার্থগতভাবে সুস্পষ্ট নয়, তবে সম্পর্ক রয়েছে। রাউটারগুলি কাঠামোগত দক্ষতার জন্য এই কাঠামোটি ব্যবহার করে, যেমনটি ম্যাসন উত্তর দিয়েছিল।
ক্রিস সাইরেফাইস

3

যে কোনও গাছের কাঠামো, যেখানে কোনও নোডে সীমাহীন সংখ্যক শিশু থাকতে পারে বাইনারি ট্রি ব্যবহার করে প্রয়োগ করা যেতে পারে।

আপনার গাছের প্রতিটি নোডের জন্য, ডান এবং বাম পয়েন্টার সহ একটি নোডের সাথে এটি প্রতিস্থাপন করুন। বাম পয়েন্টারটি নোডের বাচ্চাদের প্রথম দিকে যায়। ডান নোডটি নোডের পরবর্তী ভাইবোনগুলিতে যায়। প্রদত্ত নোডের সমস্ত বাচ্চারা তাদের ডান পয়েন্টারগুলির সাথে যুক্ত লিঙ্কযুক্ত তালিকায় থাকে এবং তালিকার শীর্ষে পিতামাতার বাম পয়েন্টারটি নির্দেশ করে।

আপনার জটিল, এন-অ্যারি গাছ একটি সাধারণ, বাইনারি গাছ হয়ে গেছে।

আমি নিশ্চিত এটি নূথ, ভলিউমে রয়েছে। 1 কোথাও।


এটি একটি সত্যই আকর্ষণীয় বাস্তবায়ন। আমি কি এই ভেবে ঠিক আছি যেহেতু প্রতিটি সন্তানের নোড একটি লিঙ্কযুক্ত তালিকার শুরু, তাই গাছটি আর ও (লগ) এন হবে না যদি ভারসাম্যযুক্ত হয় বা ও (এন) না হয় তবে প্রতিটি নোডে যাওয়া শুরু হবে এই কারণে রৈখিক অনুসন্ধান বন্ধ? এই প্রয়োগের ফলে অনুসন্ধানের সময়টি অনেক ধীর হবে? তবে উল্টো দিকে, অনুসন্ধানের সময়গুলি কোনও আদর্শ রৈখিক কাঠামোর চেয়ে দ্রুততর হবে? আমি কি এটি সঠিকভাবে বুঝতে পেরেছি?
sw123456

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

2

বাইনারি গাছ কেন তাদের ব্যবহার?

প্রোগ্রামিংয়ে আপনি একই ধরণের ডেটা সংগ্রহের সাথে প্রচুর পরিশ্রম করেন।

এই ডেটা সংরক্ষণ করার দুটি প্রাথমিক উপায় হ'ল লিঙ্কযুক্ত তালিকা এবং অ্যারে।

এগুলি উভয়ই উত্থান-পতন নিয়ে আসে: একটি লিঙ্কযুক্ত তালিকায় কোনও অবস্থাতেই উপাদান যুক্ত করা বা উপাদানগুলি সরানো সহজ। তবে একটি নির্দিষ্ট উপাদানের অ্যাক্সেস আরও শক্ত, কারণ আপনি যে উপাদানটি চান সেটিতে না আসা পর্যন্ত আপনাকে তালিকাটি অতিক্রম করতে হবে।

  • এটি দক্ষতার সাথে অনুসন্ধান করে না তবে সন্নিবেশ করা এবং মোছা সহজ।

একটি নির্দিষ্ট উপাদানের অ্যারে অ্যাক্সেস সহ সহজ, তবে এটি উপাদান সন্নিবেশ করা বা মুছে ফেলা আরও শক্ত কারণ কারণ সন্নিবেশকরণের অর্থ: অ্যারেটি একের সাথে প্রসারিত করুন, সন্নিবেশ অবস্থান 1 এর আগে সমস্ত উপাদানকে ডানদিকে সরান এবং উপাদানটি সন্নিবেশ করান।

  • এটি দক্ষতার সাথে অনুসন্ধান করা হয়েছে (যদি সাজানো থাকে) তবে serোকানো এবং মোছা শক্ত hard

সুতরাং লিঙ্কযুক্ত তালিকা এবং অ্যারে উভয়েরই ডাউনসাইড রয়েছে।

বাইনারি গাছগুলি অ্যারে এবং লিঙ্কযুক্ত তালিকার উভয় সমস্যা মোকাবেলায় তৈরি করা হয়:

  1. সহজে sertোকান এবং মুছুন
  2. সহজ অনুসন্ধান

সুতরাং আপনার কাছে নিয়মিত পরিবর্তিত হওয়া প্রচুর ডেটা থাকায় বাইনারি ট্রি তৈরি করা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.