বাইনারি অনুসন্ধান গাছ এবং বাইনারি হিপগুলির মধ্যে পার্থক্য কী?


91

এই দুটি খুব অনুরূপ বলে মনে হয় এবং প্রায় একই ধরণের কাঠামো রয়েছে। পার্থক্য কি? প্রতিটি বিভিন্ন অপারেশন জন্য সময় জটিলতা কি?

উত্তর:


63

হিপ কেবল গ্যারান্টি দেয় যে উচ্চ স্তরের উপাদানগুলি নিম্ন স্তরের উপাদানগুলির চেয়ে বেশি (সর্বোচ্চ-হিপ জন্য) বা আরও ছোট (মিনিট-হিপের জন্য), তবে বিএসটি আদেশ দেয় ("বাম" থেকে "ডানদিকে") guaran আপনি যদি সাজানো উপাদান চান তবে বিএসটি দিয়ে যান। দান্তে কোনও গীক নয়

ফাইন্ডমিন / ফাইন্ডম্যাক্স (ও (1)) এ হিপ ভাল, অন্যদিকে বিএসটি সব ফাইন্ডে (ও (লগএন)) ভাল। উভয় কাঠামোর জন্য সন্নিবেশ করা হয় ও (লগএন)। যদি আপনি কেবল ফাইন্ডমিন / ফাইন্ডম্যাক্সের (যেমন অগ্রাধিকার-সম্পর্কিত) যত্নশীল হন তবে গাদা দিয়ে যান। আপনি যদি সাজানো সব কিছু চান তবে বিএসটি দিয়ে যান।

xysun দ্বারা


আমি মনে করি বিএসটি findMin & findMax মধ্যে উত্তম stackoverflow.com/a/27074221/764592
Yeo

10
আমি মনে করি এটি কেবল একটি সাধারণ ভুল ধারণা। ইয়োও দ্বারা নির্দেশিত নূন্যতম এবং সর্বাধিক সন্ধান করতে একটি বাইনারি গাছ সহজেই সংশোধন করা যায়। এটি আসলে স্তূপের একটি সীমাবদ্ধতা : একমাত্র কার্যকর সন্ধানটি ন্যূনতম বা সর্বোচ্চ। স্তূপের আসল সুবিধা হ'ল ও (1) গড় সন্নিবেশ হিসাবে আমি ব্যাখ্যা করেছি: stackoverflow.com/a/29548834/895245
Ciro Santilli

এই ভিডিও অনুসারে , আপনার নিম্ন স্তরের বৃহত্তর মান থাকতে পারে, যতক্ষণ না বৃহত্তর নীচের অংশের বংশধর না হয়।
whoan

স্তূপী মূল থেকে পাতায় বাছাই করা হয় এবং বিএসটি বাম থেকে ডানে বাছাই করা হয়।
দীপ জোশী

34

উভয় বাইনারি অনুসন্ধান গাছ এবং বাইনারি গাদা গাছ-ভিত্তিক ডেটা স্ট্রাকচার আছে।

স্তূপগুলির জন্য নোডগুলি তাদের বাচ্চার চেয়ে অগ্রাধিকারের প্রয়োজন। সর্বাধিক স্তূপে প্রতিটি নোডের শিশুদের নিজের থেকে কম হওয়া উচিত। এটি একটি মিনিটের গাদা জন্য বিপরীত:

বাইনারি ম্যাক্স হিপ

বাইনারি অনুসন্ধান গাছগুলি (বিএসটি) ভাইবোন নোডগুলির মধ্যে একটি নির্দিষ্ট ক্রম (প্রি-অর্ডার, ইন-অর্ডার, পোস্ট-অর্ডার) অনুসরণ করে। গাছটি অবশ্যই গাদা করা উচিত , গাদা থেকে পৃথক:

বাইনারি অনুসন্ধান ট্রি

সন্নিবেশ, মোছা এবং অনুসন্ধানের জন্য বিএসটি-তে গড় । বাইনারি গাদা হতে আপনারটি গড় আছে findMin / findMax এবং জন্য ঢোকানো এবং মুছে ফেলার জন্য।O(logn)
O(1)O(logn)


1
@ ফ্র্যাঙ্কডব্লিউ এক্সট্রাকশন , না? O(logn)
ফ্লো

32

সারাংশ

          Type      BST (*)   Heap
Insert    average   log(n)    1
Insert    worst     log(n)    log(n) or n (***)
Find any  worst     log(n)    n
Find max  worst     1 (**)    1
Create    worst     n log(n)  n
Delete    worst     log(n)    log(n)

এই টেবিলের সমস্ত গড় সময় সন্নিবেশ করা বাদে তাদের খারাপ সময়গুলির সমান।

  • *: এই উত্তরের সর্বত্র, বিএসটি == ভারসাম্য বিএসটি, যেহেতু ভারসাম্যহীন অ্যাসেম্পোটোটিকভাবে সফল হয়
  • **: এই উত্তরে একটি তুচ্ছ পরিবর্তন ব্যবহার করে ব্যাখ্যা করা হয়েছে
  • ***: log(n)পয়েন্টার গাছের গাদা nজন্য, গতিশীল অ্যারে হিপ জন্য

একটি বিএসটি-তে বাইনারি হ্যাপের সুবিধা

বাইনারি হিপগুলির উপরে বিএসটি-র সুবিধা

  • স্বেচ্ছাসেবী উপাদানগুলির জন্য অনুসন্ধান করা হয় O(log(n))এটি বিএসটিগুলির হত্যাকারী বৈশিষ্ট্য।

    গাদা জন্য, এটি O(n)সাধারণত, বৃহত্তম উপাদান ছাড়া যা হয় O(1)

বিএসটি-র উপর গাদা করার "ভুয়া" সুবিধা

  • গাদা O(1)সর্বোচ্চ, বিএসটি সন্ধান করতে হয় O(log(n))

    এটি একটি সাধারণ ভুল ধারণা, কারণ বৃহত্তম উপাদানটির উপর নজর রাখতে কোনও বিএসটি সংশোধন করা তাত্পর্যপূর্ণ এবং যখনই এই উপাদানটি পরিবর্তিত হতে পারে আপডেট করুন: অপসারণের পরে একটি বৃহত্তর একটি অদলবদল সন্নিবেশ করার পরে দ্বিতীয় বৃহত্তমটি খুঁজে পাওয়া যায় find https://stackoverflow.com/questions/7878622/can-we-use-binary-search-tree-to-simulate-heap-operation ( ইয়েও উল্লেখ করেছেন )।

    প্রকৃতপক্ষে, এটি বিএসটিগুলির তুলনায় গাদাগুলির সীমাবদ্ধতা : একমাত্র দক্ষ অনুসন্ধান এটি বৃহত্তম উপাদানটির জন্য।

গড় বাইনারি হ্যাপ সন্নিবেশ করা হয় O(1)

সূত্র:

স্বজ্ঞাত যুক্তি:

  • নীচের গাছের স্তরগুলিতে শীর্ষ স্তরের তুলনায় তাত্পর্যপূর্ণভাবে আরও বেশি উপাদান রয়েছে তাই নতুন উপাদানগুলি নীচে যেতে প্রায় নিশ্চিত
  • হিপ সন্নিবেশ নীচ থেকে শুরু হয় , বিএসটি অবশ্যই উপরে থেকে শুরু করা উচিত

বাইনারি হিপগুলিতে, প্রদত্ত সূচকে মান বৃদ্ধি করাও O(1)একই কারণে। তবে আপনি যদি এটি করতে চান তবে সম্ভবত হিপ অপারেশনগুলিতে আপনি অতিরিক্ত সূচি আপ-টু-ডেট রাখতে চান https://stackoverflow.com/questions/17009056/how-to-implement-ologn-decrease- কী-অপারেশন-মিনি-হিপ-ভিত্তিক-অগ্রাধিকার-কুই জন্য উদাহরণস্বরূপ ডিজকস্ট্রার জন্য। কোনও অতিরিক্ত সময় ব্যয় ছাড়াই সম্ভব।

জিসিসি সি ++ স্ট্যান্ডার্ড লাইব্রেরি রিয়েল হার্ডওয়ারে বেনমার্ক .োকান

আমি + োকানোর সময়গুলি সম্পর্কে সঠিক কিনা তা দেখার জন্য আমি সি ++ std::set( লাল-কালো গাছ বিএসটি ) এবং std::priority_queue( গতিশীল অ্যারে হিপ ) সন্নিবেশকে বেঞ্চমার্ক করেছি এবং আমি এটি পেয়েছি:

এখানে চিত্র বর্ণনা লিখুন

  • মানদণ্ডের কোড
  • প্লট স্ক্রিপ্ট
  • প্লট ডেটা
  • সিপিইউ সহ একটি লেনোভো থিংকপ্যাড পি 5১ ল্যাপটপে উবুন্টু 19.04, জিসিসি 8.3.0 এ পরীক্ষিত: ইনটেল কোর আই 7-7820 এইচকিউ সিপিইউ (4 টি কোর / 8 থ্রেড, 2.90 গিগাহার্টজ বেস, 8 এমবি ক্যাশে), র‌্যাম: 2x স্যামসাং এম 471 এ 2 কে 43 বিবি 1-সিআরসি (2 এক্স 16 জিআইবি) , 2400 এমবিপিএস), এসএসডি: স্যামসং এমজেডভিএলবি 512 এএইচকিউ -000 এল 7 (512 জিবি, 3,000 এমবি / সে)

তাই পরিষ্কার:

  • হিপ সন্নিবেশ সময় মূলত ধ্রুবক।

    আমরা গতিশীল অ্যারে পুনরায় আকার পয়েন্টগুলি পরিষ্কারভাবে দেখতে পারি। যেহেতু আমরা উপরের সমস্ত সিস্টেমের গোলমালে যে কোনও কিছু দেখতে সক্ষম হতে প্রতি 10 কে সন্নিবেশকে গড় গড় দিচ্ছি , সেই শৃঙ্গগুলি বাস্তবে দেখানো থেকে 10k গুণ বেশি বড়!

    জুমেড গ্রাফটি মূলত কেবল অ্যারে পুনরায় আকারের পয়েন্টগুলি বাদ দেয় এবং দেখায় যে প্রায় সমস্ত সন্নিবেশগুলি 25 ন্যানোসেকেন্ডের আওতায় পড়ে।

  • বিএসটি লোগারিথমিক ith সমস্ত serোকানো গড় হ্যাপ সন্নিবেশের তুলনায় অনেক ধীর er

  • বিএসটি বনাম হ্যাশম্যাপের বিশদ বিশ্লেষণ এখানে: https://stackoverflow.com/questions/18414579/ কি-data-st संरचना-is-inside-stdmap-in-c/51945119#51945119

জিসি সি ++ স্ট্যান্ডার্ড লাইব্রেরি রত্ন 5 তে মাপদণ্ডের বেঞ্চমার্ক

জেম 5 একটি সম্পূর্ণ সিস্টেম সিমুলেটর, এবং তাই এর সাথে একটি অসীম নির্ভুল ঘড়ি সরবরাহ করে m5 dumpstats। তাই আমি পৃথক প্রবেশের সময় নির্ধারণের জন্য এটি ব্যবহার করার চেষ্টা করেছি।

এখানে চিত্র বর্ণনা লিখুন

ব্যাখ্যা:

  • গাদা এখনও স্থির, তবে এখন আমরা আরও বিশদে দেখতে পাচ্ছি যে কয়েকটি লাইন রয়েছে এবং প্রতিটি উচ্চতর লাইনই বেশি বিচ্ছিন্ন।

    এটি উচ্চতর এবং উচ্চতর সন্নিবেশগুলির জন্য মেমরি অ্যাক্সেসের বিলম্বের সাথে সম্পন্ন হওয়া আবশ্যক।

  • টোডো আমি বিএসটিকে সম্পূর্ণরূপে ব্যাখ্যা করতে পারি না কারণ এটি এত লোগারিথিক এবং কিছুটা বেশি ধ্রুবক লাগে না।

    এই বৃহত্তর বিশদটি সহ আমরা দেখতে পাচ্ছি কয়েকটি স্বতন্ত্র লাইনও দেখতে পাবে তবে তারা যেটি উপস্থাপন করে তা আমি নিশ্চিত নই: আমি নীচের লাইনটি আরও পাতলা হওয়ার প্রত্যাশা করব, যেহেতু আমরা উপরের নীচের অংশটি সন্নিবেশ করি?

একটি আড়াল H64 এইচপিআই সিপিইউতে এই বিল্ড্রুট সেটআপের সাথে বেঞ্চমার্কযুক্ত ।

বিএসটি কোনও অ্যারেতে দক্ষতার সাথে প্রয়োগ করা যায় না

হিপ অপারেশনগুলিতে কেবল একটি গাছের শাখাকে বুদ্বুদ করা বা নীচে ফেলা প্রয়োজন, তাই O(log(n))সবচেয়ে খারাপ পরিস্থিতি স্বাপ হয়, O(1)গড়।

একটি বিএসটি ভারসাম্য বজায় রাখার জন্য গাছের আবর্তন প্রয়োজন, যা অন্য একটির জন্য শীর্ষ উপাদানকে পরিবর্তন করতে পারে এবং পুরো অ্যারেটি ( O(n)) ঘুরতে হবে ।

গাদা একটি অ্যারে দক্ষতার সাথে প্রয়োগ করা যেতে পারে

পিতামাতার এবং শিশুদের সূচকগুলি এখানে প্রদর্শিত হিসাবে বর্তমান সূচি থেকে গণনা করা যেতে পারে ।

বিএসটি-র মতো কোনও ভারসাম্যমূলক ক্রিয়াকলাপ নেই।

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

আপনি মুছে ফেলা প্রত্যেকটির জন্য যদি একটি একক নোড inোকাচ্ছেন তবে আপনি অ্যাসিমেটটিক ও (1) গড় সন্নিবেশের সুবিধাটি হারাবেন যা মোছাগুলি মুছে ফেলা হবে, এবং আপনি পাশাপাশি একটি বিএসটি ব্যবহার করতে পারেন। ডিজকસ્ત્રা প্রতিটি অপসারণের জন্য নোডগুলি বেশ কয়েকবার আপডেট করে, তাই আমরা ভাল আছি।

গতিশীল অ্যারে হ্যাপস বনাম পয়েন্টার ট্রি হ্যাপস

পয়েন্টার হ্যাপগুলির শীর্ষে হিপগুলি দক্ষতার সাথে প্রয়োগ করা যেতে পারে: https://stackoverflow.com

গতিশীল অ্যারে বাস্তবায়ন আরও স্থান দক্ষ। মনে করুন যে প্রতিটি গাদা উপাদানটিতে একটিতে কেবলমাত্র একটি পয়েন্টার রয়েছে struct:

  • গাছ প্রয়োগের জন্য প্রতিটি উপাদানের জন্য তিনটি পয়েন্টার সংরক্ষণ করতে হবে: পিতামাতা, বাম শিশু এবং ডান শিশু। সুতরাং মেমরির ব্যবহার সর্বদা হয় 4n(3 টি ট্রি পয়েন্টার + 1 structপয়েন্টার)।

    বৃক্ষ বিএসটিগুলিতে আরও ভারসাম্যপূর্ণ তথ্যের প্রয়োজন হবে, যেমন- কালো-লাল-নেস।

  • গতিশীল অ্যারে বাস্তবায়ন 2nদ্বিগুণ হওয়ার ঠিক পরে আকার হতে পারে । সুতরাং এটি হতে চলেছে 1.5n

অন্যদিকে, গাছের স্তূপগুলি সবচেয়ে খারাপ ক্ষেত্রে সন্নিবেশ করায়, কারণ ব্যাকিং গতিশীল অ্যারে এর আকার দ্বিগুণ করার জন্য অনুলিপি করা সবচেয়ে O(n)খারাপ লাগে , অন্যদিকে গাছের গাদা প্রতিটি নোডের জন্য কেবল নতুন ছোট বরাদ্দ করে।

তবুও, ব্যাকিং অ্যারে দ্বিগুণ হওয়া O(1)সূচিত হয়েছে, তাই এটি সর্বোচ্চ বিলম্বিত বিবেচনায় নেমে আসে। এখানে উল্লেখ করা হয়েছে

দর্শন

  • বিএসটিগুলি পিতা বা মাতা এবং সমস্ত বংশধরদের মধ্যে একটি বৈশ্বিক সম্পত্তি বজায় রাখে (ছোট ছোট, ডানদিকে বড়)।

    একটি বিএসটি-র শীর্ষ নোডটি মাঝারি উপাদান, যা বজায় রাখতে বিশ্বব্যাপী জ্ঞান প্রয়োজন (কতগুলি ছোট এবং বৃহত্তর উপাদান রয়েছে তা জেনে)।

    এই বিশ্বব্যাপী সম্পত্তিটি রক্ষণাবেক্ষণ করতে (লগ এন সন্নিবেশ করা) আরও ব্যয়বহুল, তবে আরও শক্তিশালী অনুসন্ধান (লগ এন অনুসন্ধান) দেয়।

  • গাদা পিতামাতা এবং প্রত্যক্ষ বাচ্চাদের (পিতামাতাদের> শিশুদের) মধ্যে একটি স্থানীয় সম্পত্তি বজায় রাখে।

    স্তূপের শীর্ষ নোটটি হ'ল বড় উপাদান, যা কেবল বজায় রাখতে স্থানীয় জ্ঞান প্রয়োজন (আপনার পিতামাতাকে জানার)।

দ্বি-সংযুক্ত তালিকা list

দ্বিগুণ সংযুক্ত তালিকাকে স্তূপের উপসেট হিসাবে দেখা যেতে পারে যেখানে প্রথম আইটেমটির সর্বাধিক অগ্রাধিকার রয়েছে, সুতরাং আসুন এখানেও তাদের তুলনা করুন:

  • সন্নিবেশ:
    • অবস্থান:
      • দ্বিগুণ লিঙ্কযুক্ত তালিকা: inোকানো আইটেমটি অবশ্যই প্রথম বা শেষ হওয়া উচিত, কারণ আমাদের কেবল সেই উপাদানগুলির মধ্যে পয়েন্টার রয়েছে।
      • বাইনারি হিপ: itemোকানো আইটেমটি কোনও অবস্থাতেই শেষ হতে পারে। লিঙ্কযুক্ত তালিকার চেয়ে কম সীমাবদ্ধ।
    • সময়:
      • দ্বিগুণ লিঙ্কযুক্ত তালিকা: O(1)যেহেতু আমাদের আইটেমগুলিতে পয়েন্টার রয়েছে সেহেতু সবচেয়ে খারাপ পরিস্থিতি এবং আপডেটটি সত্যই সহজ
      • বাইনারি হিপ: O(1)গড়, লিঙ্কযুক্ত তালিকার চেয়ে খারাপ। আরও সাধারণ সন্নিবেশ অবস্থানের জন্য ট্রেড অফ।
  • অনুসন্ধান: O(n)উভয়ের জন্য

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

এটি একটি এলআরইউ ক্যাশে প্রয়োগ করতে ব্যবহার করা যেতে পারে । শুধু Dijkstra মত গাদা অ্যাপ্লিকেশনের জন্য , আপনি তালিকার সংশ্লিষ্ট নোড চাবিকাঠি থেকে একটি অতিরিক্ত hashmap রাখা, যা নোড দ্রুত আপডেট করার জন্য খুঁজতে চান হবে।

বিভিন্ন ভারসাম্য বিএসটি এর তুলনা

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

  • লাল-কালো গাছ । 2019 সালের হিসাবে সর্বাধিক ব্যবহৃত বিবিএসটি হিসাবে প্রদর্শিত হবে, যেমন এটি জিসিসি 8.3.0 সি ++ বাস্তবায়ন দ্বারা ব্যবহৃত
  • এভিএল গাছ । বিএসটি-র তুলনায় কিছুটা সুষম বলে মনে হচ্ছে, তাই কিছুটা ব্যয়বহুল অনুসন্ধানের ব্যয় করে, বিলম্বিতা খুঁজে পাওয়া আরও ভাল। উইকির সংক্ষিপ্তসার: "এভিএল গাছগুলি প্রায়শই লাল-কালো গাছের সাথে তুলনা করা হয় কারণ উভয়ই একই ক্রিয়াকলাপকে সমর্থন করে এবং মৌলিক ক্রিয়াকলাপের জন্য [একই] সময় নেয় lookup এগুলি আরও কঠোরভাবে ভারসাম্যযুক্ত red বংশধরদের পৃথক পৃথক সংখ্যা। "
  • WAVLমূল কাগজ rebalancing এবং আবর্তনের অপারেশন উপর সীমা পরিপ্রেক্ষিতে যে সংস্করণ সুবিধার উল্লেখ করা হয়।

আরো দেখুন

সিএসে অনুরূপ প্রশ্ন: একটি বাইনারি অনুসন্ধান গাছ এবং বাইনারি হ্যাপের মধ্যে পার্থক্য কী?


1
দুর্দান্ত উত্তর। হিপগুলির সাধারণ প্রয়োগ হ'ল মিডিয়ান, কে মিন, শীর্ষ কে উপাদান। এই সর্বাধিক প্রচলিত অপারেশনের জন্য মিনিট সন্নিবেশ সরিয়ে ফেলুন (সাধারণত আমাদের কাছে কয়েকটি খাঁটি সন্নিবেশকরণ অপারেশন সহ ছোট ছোট গাদা থাকে)। বাস্তবে যেমন মনে হয়, এই অ্যালগরিদমের জন্য এটি বিএসটিকে ছাড়িয়ে যায় না।
ইউরা

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

13

ডেটা স্ট্রাকচারের সাথে একজনকে উদ্বেগের মাত্রা আলাদা করতে হবে।

  1. এই প্রশ্নের বিমূর্ত ডেটা স্ট্রাকচার (বস্তুগুলি সংরক্ষণ করা, তাদের ক্রিয়াকলাপ) আলাদা different একটি অগ্রাধিকার সারি প্রয়োগ করে, অন্যটি সেট করে। একটি অগ্রাধিকার সারি একটি স্বেচ্ছাসেবী উপাদান সন্ধান করতে আগ্রহী নয়, বৃহত্তম অগ্রাধিকার সহ কেবল এটিই।

  2. কংক্রিট বাস্তবায়নের স্ট্রাকচার। এখানে প্রথম দর্শনে উভয়ই (বাইনারি) গাছ, যদিও বিভিন্ন কাঠামোগত বৈশিষ্ট্য সহ। কীগুলির আপেক্ষিক ক্রম এবং সম্ভাব্য বৈশ্বিক কাঠামো উভয়ই পৃথক। (কিছুটা অসম্পূর্ণভাবে, BSTকীগুলিতে বাম থেকে ডান দিকে অর্ডার করা হয়, একটি গাদাতে তাদের উপরের নিচে অর্ডার দেওয়া হয়)) আইপল্যান্ট সঠিকভাবে মন্তব্য করার সাথে একটি apੇਰটিও "সম্পূর্ণ" হওয়া উচিত।

  3. নিম্ন স্তরের বাস্তবায়নে চূড়ান্ত পার্থক্য রয়েছে । একটি (ভারসাম্যহীন) বাইনারি অনুসন্ধান-বৃক্ষের পয়েন্টার ব্যবহার করে একটি মানক প্রয়োগ রয়েছে implementation বিপরীতে একটি বাইনারি গাদা একটি অ্যারে ব্যবহার করে একটি কার্যকর বাস্তবায়ন রয়েছে (সুনির্দিষ্টভাবে সীমিত কাঠামোর কারণে)।


1

পূর্ববর্তী উত্তরের উপরে, গাদাটির অবশ্যই গাদা কাঠামোর সম্পত্তি থাকতে হবে; গাছটি অবশ্যই পূর্ণ হতে হবে এবং নীচের বেশিরভাগ স্তরটি সর্বদা পূর্ণ হতে পারে না এমন ফাঁকগুলি ছাড়াই বাম দিক থেকে ডানদিকে অবশ্যই পূরণ করতে হবে।

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