حل تشریحی سوال شماره 7 ساختمان داده ها و طراحی الگوریتم ها
کنکور دکتری مهندسی کامپیوتر 1404
فرض کنید دو ساختار داده به صورت زیر دارید:
- یک هرم بیشینه (Max-Heap) ذخیره شده در یک آرایه
- یک درخت AVL که همان مقادیر موجود در هیپ را ذخیره کرده است و به عنوان یک درخت جستجوی دودویی متوازن (Balanced Binary Search Tree) عمل می کند.
از آنجا که هرم بیشینه و درخت AVL هر دو مرتب هستند، می توانید از جستجوی دودویی در هر دو ساختار استفاده کنید و کوچک ترین مقدار را در زمان پیدا کنید.
در هرم هر دو ساختار، کوچک ترین مقدار، ممکن است در هر سطح یا شاخه وجود داشته باشد. بنابراین، باید همه گره ها را در هر دو ساختار جستجو کنید که پیچیدگی زمانی خواهد بود.
در هرم بیشینه، کوچک ترین مقدار باید در پایین ترین سطح و در گره های برگ قرار داشته باشد که نیازمند پیمایش تمامی گره های برگ است . در درخت AVL، کوچک ترین مقدار در گره سمت چپ ترین قرار دارد و می توان آن را در زمان پیدا کرد.
هرم بیشینه، برای پیدا کردن کوچک ترین مقدار مناسب نیست، زیرا ساختار آن برای دسترسی سریع به بزرگ ترین مقدار طراحی شده است. اما درخت AVL، کوچک ترین مقدار در گره چپ ترین قرار دارد و این مقدار را در زمان برمی گرداند.