پردازش ریاضی: 0٪
برنامه‌ریزی تا کنکور ارشد و دکتری: مشاوره خصوصیت با استاد رضوی رو رزرو کن!
ویس توضیحات مشاوره رزرو مشاوره
کنکور کامپیوتر
0
ورود | ثبت نام
نظرات
اشتراک
بالا
علاقه‌مندی
اشتراک
 

نمونه سوالات ساختمان داده با پاسخ تشریحی - مثال های ساختمان داده

در این صفحه نمونه سوالات ساختمان داده با پاسخ تشریحی برای شما عزیزان قرار داده شده است، سعی شده مثال های ساختمان داده تمامی مباحث منطقی را در بر گیرد

در این صفحه نمونه سوالات ساختمان داده با پاسخ تشریحی برای شما عزیزان قرار داده شده است، سعی شده مثال های ساختمان داده تمامی مباحث ساختمان داده را در بر گیرد. در صورتی که علاقه دارید تا بیشتر با درس ساختمان داده آشنا شوید و فیلم های رایگان ساختمان داده را مشاهده کنید به صفحه معرفی و بررسی آموزش ساختمان دادهآموزش ساختمان داده و الگوریتمآموزش ساختمان داده و الگوریتمهر ساختمان داده یک نوع فرمت ذخیره‌سازی و مدیریت داده‌ها در کامپیوتر است، که امکان دسترسی و اصلاح کارآمد آن داده‌ها را برای یکسری از الگوریتم‌ها و کاربردها فراهم می‌کند، در این صفحه به بررسی و آموزش ساختمان داده و الگوریتم پرداخته شده است مراجعه کنید.

قبل از اینکه به ادامه مقاله نمونه سوالات ساختمان داده بپردازیم توصیه می‌کنیم که فیلم زیر که در خصوص تحلیل و بررسی درس ساختمان داده رشته کامپیوتر است را مشاهده کنید، در این فیلم توضیح داده شده که فیلم درس ساختمان داده برای چه افرادی مناسب است و همین طور در خصوص فصول مختلف درس ساختمان داده و اهمیت هر کدام از فصول ساختمان داده صحبت شده است.

در ادامه این مقاله فیلم های رایگان ساختمان داده که به آنها نیاز دارید نیز در اختیارتان قرار گرفته است.

در زیر فیلم های ساختمان داده قرار داده شده است و در این فیلم ها نمونه سوالات زیادی از ساختمان داده حل شده است.

همچنین پس از این بخش، نمونه سوالات ساختمان داده زیادی در اختیار شما عزیزان قرار گرفته است.

فیلم های رایگان ساختمان داده که به آنها نیاز دارید

فیلم ساختمان داده جلسه 1

فیلم ساختمان داده جلسه 1

فیلم ساختمان داده جلسه 2

فیلم ساختمان داده جلسه 2

فیلم ساختمان داده جلسه 3

فیلم ساختمان داده جلسه 3

فیلم ساختمان داده جلسه 4

فیلم ساختمان داده جلسه 4

فیلم ساختمان داده جلسه 5

فیلم ساختمان داده جلسه 5

فیلم ساختمان داده جلسه 6

فیلم ساختمان داده جلسه 6

فیلم ساختمان داده جلسه 7

فیلم ساختمان داده جلسه 7

فیلم ساختمان داده جلسه 8

فیلم ساختمان داده جلسه 8

حل تست ساختمان و الگوریتم جلسه 1

حل تست ساختمان و الگوریتم جلسه 1

حل تست ساختمان و الگوریتم جلسه 2

حل تست ساختمان و الگوریتم جلسه 2

حل تست ساختمان و الگوریتم جلسه 3

حل تست ساختمان و الگوریتم جلسه 3

ساختمان داده و طراحی الگوریتم کامپیوتر 1403

ساختمان داده و طراحی الگوریتم کامپیوتر 1403

ساختمان داده و طراحی الگوریتم آیتی 1403

ساختمان داده و طراحی الگوریتم آیتی 1403

حل تست ساختمان و الگوریتم جلسه 4

حل تست ساختمان و الگوریتم جلسه 4

انواع پیمایش‌های درخت

انواع پیمایش‌های درخت

نحوه ساخت درخت BST

نحوه ساخت درخت BST

آموزش درخت B-Tree

آموزش درخت B-Tree

بررسی مرتبه ساخت هیپ

بررسی مرتبه ساخت هیپ

آموزش مرتب سازی سریع

آموزش مرتب سازی سریع

آموزش شبکه شار

آموزش شبکه شار

حل سوالات ساختمان ارشد کامپیوتر 99

حل سوالات ساختمان ارشد کامپیوتر 99

حل ساختمان ارشد 95 بخش 1

حل ساختمان ارشد 95 بخش 1

حل ساختمان ارشد 95 بخش 2

حل ساختمان ارشد 95 بخش 2

نمایش بیشتر
نمایش کمتر

خرید فیلم های ساختمان داده

در حال حاضر فیلم آموزش ساختمان داده استاد رضوی پرطرفدارترین و پرفروش‌ترین فیلم آموزشی ساختمان داده و الگوریتم کشور است و هر سال بیش از ۶۰۰۰ نفر این فیلم را تهیه می‌کنند

Ramin Razavi 1

ویدیو درس ساختمان داده

۱۵٪ تخفیف

990,000 تومان 841,000 تومان
رامین رضوی
۶۴ ساعت
Ramin Razavi 1

ویدیو نکته و تست ساختمان داده و طراحی الگوریتم

۱۵٪ تخفیف

900,000 تومان 765,000 تومان
رامین رضوی
۶۶ ساعت

خب حالا مجددا به توضیح نمونه سوالات در ساختمان داده ادامه می‌دهیم

نمونه سوالات مرتبه زمانی درس ساختمان داده

در زیر نمونه سوالات بسیار متنوعی از ساختمان داده را برای شما آورده ایم و سعی کردیم که از همه مباحث ساختمان داده نمونه سوالاتی با پاسخ تشریحی برای شما قرار دهیم، جامعیت و تنوع نمونه سوالات ساختمان داده ای که برای شما قرار دادیم حتما نیاز شما را بر طرف خواهد کرد.

متوسط خروجی تابع زیر کدام است؟ به دست آوردن مرتبه زمانی شبه کدها

[فرمول]
[فرمول]
[فرمول] [فرمول] [فرمول]
[فرمول]

1 [فرمول]
2[فرمول]
3[فرمول]
4 [فرمول]
حلقه بیرونی [فرمول] مرتبه و حلقه داخلی [فرمول] مرتبه اجرا می‌شود، بنابراین تعداد دفعات اجرای عبارت [فرمول] برابر [فرمول] می‌باشد و چون این عبارت با مقدار [فرمول] افزایش می‌یابد بنابراین خروجی از مرتبه [فرمول] می‌باشد.
متوسط تعداد تکرار جمله اصلی [فرمول] را در کد زیر به‌دست آورید؟ به دست آوردن مرتبه زمانی شبه کدها

[فرمول]
[فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول]

1[فرمول]
2[فرمول]
3[فرمول]
4 [فرمول]

با هر بار تکرار حلقه بیرونی (حلقه‌ای که شرط خاتمه‌اش روی i است)، حلقه داخلی [فرمول] بار اجرا می‌شود و در هربار اجرا حلقه داخلی؛ i تقسیم بر ۲ می‌شود و این بدان معناست که i در هر بار اجرا حلقه بیرونی تقسیم بر [فرمول] می‌شود و این کار تا زمانی ادامه دارد که [فرمول] باشد. بنابراین حلقه خارجی [فرمول] بار اجرا می‌شود که در هر بار اجرا آن حلقه داخلی [فرمول] بار اجرا می‌شود، بنابراین تعداد اجزا جمله  [فرمول] برابر است با:

(نکته: [فرمول])                                   [فرمول]

دشوار رابطه بازگشتی زیر چه عملی را انجام می‌دهد؟

[فرمول]

(ERR، مقدار کرانه خطای محاسبات و یا به عبارتی دقت جواب را بیان می‌کند.) به دست آوردن مرتبه زمانی شبه کدها

1[فرمول] را حساب می­‌کند.
2[فرمول] را حساب می‌کند.
3 [فرمول] را حساب می‌کند.
4 [فرمول] را حساب می‌کند.( e عدد نِپِر است.)

از روی گزینه‌­ها می­‌فهمیم که قرار است روی A یک عملیات انجام شود، پس مثلا به ازای 9=A سوال را بررسی می‌کنیم.

[فرمول]

[فرمول]

[فرمول]

[فرمول]

مشخص است که [فرمول] است و هدف کم کردن اختلاف [فرمول]. پس در واقع [فرمول]؛ داریم:

[فرمول]

متوسط مرتبه اجرایی هر یک از الگوریتم ­های زیر کدام است؟ به دست آوردن مرتبه زمانی شبه کدها
الگوریتم A

[فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول]
الگوریتم B

[فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول]
1[فرمول]
2[فرمول]
3[فرمول]
4 [فرمول]

Function(int n){
[فرمول] If(n==l) return;[فرمول]O(l)
[فرمول] for(int i=l;i [فرمول] n;i++){[فرمول]O(n)
[فرمول]for(int j=l;j [فرمول] n;j++){[فرمول]O(l)
[فرمول]Printf(''*'');
[فرمول]Break;}}
}

برای الگوریتم B رابطه بازگشتی [فرمول] را داریم که با استفاده از تئوری مستر میزان پیچیدگی برابر با [فرمول] می‌باشد.

یادآوری: تئوری مستر

[فرمول]

به شرطی که [فرمول] و [فرمول]، اگر مرتبه تابع برابر با [فرمول]، باشد، آن گاه داریم:

[فرمول]

نمونه سوالات رشد توابع درس ساختمان داده

آسان توابع [فرمول] ، [فرمول] و [فرمول] را در نظر می‌گیریم. کدام یک از گزاره‌های زیر صحیح است؟ رشد توابع
1[فرمول]
2[فرمول]
3[فرمول]
4 [فرمول]

به سادگی باید توابع را با یکدیگر مقایسه کنیم:

یاددآوری) دقت کنید [فرمول] با [فرمول] برابر نیست بلکه [فرمول] و [فرمول]

نکته)  1

اثبات نکته بالا:

یاددآوری: با توجه به فرمول روبه رو میتوان مبنا را تغییر داد: [فرمول]

[فرمول]

حال با توجه به نکات بالا می‌فهمیم که [فرمول] حال به مقایسه‌ی این توابع می‌پردازیم.

[فرمول]

چون هر توان ثابتی از [فرمول] از هر توان ثابتی از [فرمول] رشد بیشتری دارد.

برای تشخیص [فرمول] دو راه داریم (البته مشخص است که دو تابع با توان یکسان داریم و پایه‌های یکی عدد ثابت و دیگری [فرمول] است پس [فرمول] بزرگتر است):

1-      با استفاده از حد نشان دهیم رشد کدام بیشتر است.

[فرمول]

از آنجا که نسبت یک عدد ثبات به [فرمول] صفر خواهد شد می‌فهمیم که [فرمول] پس داریم:

[فرمول] یا [فرمول]

2-    با توجه به اینکه هردو تابع صعودی و بزرگتر از یک هستند از روی رشد [فرمول]هایشان نیز می‌توان مشخص نمود:

[فرمول]

پس داریم:

[فرمول] یا [فرمول]

برای تشخیص [فرمول] دو راه داریم (البته مشخص است که دو تابع با پایه یکسان داریم و توان یکی عدد ثابت و دیگری [فرمول] است پس [فرمول] بزرگتر است):

1-      با استفاده از حد نشان دهیم رشد کدام بیشتر است.

[فرمول]

از آنجا که نسبت یک برابر با بینهایت شد می‌فهمیم که [فرمول]

2-    با توجه به اینکه هردو تابع صعودی و بزرگتر از یک هستند از روی رشد [فرمول]هایشان نیز می‌توان مشخص نمود:

[فرمول]

پس داریم:

[فرمول] یا [فرمول] و در کل می‌فهمیم که [فرمول]

حال با توجه به توضیحات بالا می‌فهمیم که گزینه صحیح است.

یاددآوری: 

Big O: تابع f(n) از مرتبه O(g(n)) است هرگاه رشد f  کمتر مساوی رشد g باشد.

[فرمول]

O بزرگ کران بالا را مشخص می‌کند. 

دقت شود O یک مجموعه است و در نتیجه توابع می‌توانند عضو این مجموعه باشند اما به صورت اشتباه رایج از مساوی برای عضویت استفاده می‌شود.

[فرمول]

2

big [فرمول] : تابع f(n) از مرتبه [فرمول](g(n)) است هرگاه رشد f بیشتر مساوی رشد g باشد.

[فرمول]

[فرمول] بزرگ کران پایین را مشخص می‌کند. 

دقت شود [فرمول]  یک مجموعه است و در نتیجه توابع می‌توانند عضو این مجموعه باشند اما به صورت اشتباه رایج از مساوی برای عضویت استفاده می‌شود.

[فرمول]

3

با توجه به خواص مجانبی می‌توان عبارات زیر را نتیجه گرفت.

[فرمول]

متوسط برای توابع زیر با مرتبه رشد داده شده، دنباله صعودی مرتب شده توابع به صورت [فرمول] که در آن [فرمول] می‌باشد، کدام است؟ رشد توابع

[فرمول]

1 [فرمول]
2 [فرمول]
3[فرمول]
4[فرمول]

(خواص لگاریتم) [فرمول]
(توابع چندجمله‌ای از تمامی توابع لگاریتمی با هر توانی رشد سریع‌تری دارند) [فرمول] [فرمول] (خواص لگاریتم) [فرمول] [فرمول]

دشوار دو الگوریتم داده شده است که یکی دارای مرتبه زمانی [فرمول] است (یعنی مرتبه زمانی آن برای [فرمول] کوچک­تر و مساوی [فرمول] است) و دیگری دارای مرتبه زمانی [فرمول] است (یعنی مرتبه زمانی آن برای [فرمول] کوچک ­تر و مساوی [فرمول] است). برای چه n هایی [فرمول] از [فرمول] بهتر است؟ رشد توابع
1 برای تمام مقادیر n
2[فرمول]
3[فرمول]
4[فرمول]

[فرمول]

[فرمول]

[فرمول]

چه وقتی ممکن است نقض شود؟

اگر [فرمول] خیلی بزرگ باشد و c خیلی کوچک باشد.

[فرمول]

مثلا فرض کنید [فرمول] برابر ۱۰۰۰ باشد و c برابر ۱ باشد [فرمول]، خب هر چقدر هم که بیشتر شدن مقدار n باعث بشود که [فرمول] رشدش از n lg n بیشتر بشود ولی زورش به ۱۰۰۰ نمی‌رسد، پس برای این که [فرمول] بزرگتر بشه از [فرمول]، باید n عدد بزرگی باشد. قرار شد [فرمول] باشد، حالا اگر c از [فرمول] بزرگتر باشد که در این صورت [فرمول] خیلی بهتر از [فرمول] است ولی اگر c کوچکتر از [فرمول] باشد، حالا وظیفه n است که با بزرگتر خودش، کوچکی c به [فرمول] را جبران کند.

متوسط کدام­ یک از موارد زیر درست می‌باشد؟ رشد توابع

الف) [فرمول]، زمانی که k و m هر دو ثابت باشند.
ب) [فرمول] ج) [فرمول]

1الف و ب
2الف و ج
3ب و ج
4 الف و ب و ج

[فرمول]

[فرمول]

آسان  کدام یک از مجموعه توابع زیر بر حسب زمان رشد صعودی از چپ به راست مرتب هستند.  رشد توابع
1 [فرمول]
2 [فرمول]
3[فرمول]
4[فرمول]

در حالت کلی داریم: [فرمول]

نمونه سوالات روابط بازگشتی درس ساختمان داده

متوسطبرنامه A روی کامپیوتر اولی با اندازه 32 در مدت 5 میلی ثانیه اجرا می­‌شود و برنامه B روی کامپیوتر دوم که سرعت آن 128 برابر کندتر از کامپیوتر اولی می­‌باشد و اندازه برنامه برابر با 6 می‌باشد در این صورت زمان اجرای کامپیوتر دوم را محاسبه کنید.روابط بازگشتی
[فرمول]
[فرمول]
[فرمول]
1 1 میلی ثانیه
2 2 میلی ثانیه
3 16 میلی ثانیه
4 8 میلی ثانیه

ابتدا باید مرتبه زمانی هر دو برنامه را به دست بیارویم. برای برنامه A داریم:

[فرمول] بار

[فرمول]

[فرمول]

[فرمول]

[فرمول]

[فرمول]

[فرمول]

برای برنامه B داریم، [فرمول] بنابر قضیه مستر مرتبه اجرای این برنامه برابر است با [فرمول]

بنابر مفروضات مسئله داریم [فرمول] حال با استفاده از رابطه [فرمول]

[فرمول]

دشوار اگر زمان اجرای یک الگوریتم با رابطه بازگشتی [فرمول] مشخص شود کدام گزینه پیچیدگی زمانی الگوریتم را به درستی بیان می‌کند؟ روابط بازگشتی
1 [فرمول]
2 [فرمول]
3 [فرمول]
4 [فرمول]

[فرمول]

ابتدا رابطه اصلی را در n ضرب می‌کنیم و سپس در رابطه بدست آمده به جای n+1، n قرار می‌دهیم:

[فرمول] [فرمول]

سپس رابطه [فرمول] را از منفی رابطه [فرمول] می‌کنیم:

[فرمول] 

[فرمول] 

حال اگر تابع [فرمول] را به این صورت تعریف ‌کنیم، با توجه به رابطه بازگشتی‌ای که در بالا بدست آوردیم خواهیم داشت:

[فرمول] 

[فرمول] 

[فرمول] 

[فرمول] 

[فرمول] 

آسان کدام یک از روابط بازگشتی زیر از مرتبه [فرمول] است؟ روابط بازگشتی
1[فرمول]
2 [فرمول]
3[فرمول]
4 [فرمول]

واضح است که گزینه‌ 3 از [فرمول] است و گزینه 1و 4 نیز [فرمول] .

می دانیم که گزینه دوم [فرمول] زیرا اگر به رابطه دقت کنید، در سمت راست تساوی داریم، [فرمول] ، از طرفی به کمک حدس  زدن نشان خواهیم داد که:

[فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول]

روش دوم:

[فرمول]

جایگذاری کنید:

[فرمول]

آسان در رابطه بازگشتی [فرمول] به ازای چند تا از عبارت‌های [فرمول] زیر، دست‌کم یک تابع برای [فرمول] وجود دارد به طوری‌که [فرمول] ؟ روابط بازگشتی

[فرمول]

1 1
2 2
3 3
44

با استفاده از قضیه مستر می‌دانیم که:

برای عبارت [فرمول] مرتبه سه حالت داریم:

[فرمول]

[فرمول]

[فرمول]

نکته) اگر در [فرمول]، هر توانی از [فرمول] را کنار می‌گذاریم و بخش باقی‌مانده از آن را با سمت چپ مقایسه می‌کنیم سه حالت رخ می‌دهد

4-      اگر سمت چپ بزرگتر باشد مرتبه برابر سمت چپی می‌شود

5-    اگر سمت راستی بزرگتر باشد، مرتبه برابر با سمت راستی ضرب در [فرمول] (یعنی همون [فرمول]) خواهد بود.

6-    اگر برابر باشند مرتبه برابر با [فرمول] ضرب در [فرمول] می‌شود

حال برای عبارت بالا داریم [فرمول] در نتیجه برای اینکه این شرط برقرار باشد باید به صورت زیر عمل کنیم و هر تابع را امتحان کرده و [فرمول] پیدا کنیم که شرط [فرمول] برقرار می‌سازد.

[فرمول] [فرمول] [فرمول] [فرمول]

متوسط اگر محتوای تمامی خانه‌هایی یک آرایه n عنصری A به ازاء تمامی مقادیر [فرمول] برابر مقدار ثابت k و [فرمول] باشد [فرمول] مرتبه زمانی تابع بازگشتی زیر با فراخوانی چیست؟ روابط بازگشتی

[فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول]

1[فرمول]
2[فرمول]
3[فرمول]
4 [فرمول]
اگر همه عناصر آرایه مقدار ثابت K باشد [فرمول] و ما فراخوانی تابع f(A,i) را با 1=i شروع کنیم می­‌بینیم که شرط if دارد K تا زیاد می‌شود تا به n برسد بنابراین [فرمول] بار فراخوانی انجام می‌­شود. بنابراین مرتبه برابر خواهد بود با [فرمول].
متوسط مرتبه رابطه بازگشتی [فرمول] که [فرمول] ثابت و [فرمول] است را به‌دست بیاروید. روابط بازگشتی
1[فرمول]
2[فرمول]
3 [فرمول]
4[فرمول]

برای این سوال درخت بازگشتی را رسم می­‌کنیم.

                                                                                جمع

[فرمول]

4

[فرمول]

5

[فرمول]

[فرمول]

تصاعد هندسی با جمله اول 1 و قدرت نسبت [فرمول] اگر n خیلی زیاد باشد. 

[فرمول]

متوسط برنامه A روی کامپیوتر اولی با اندازه 32 در مدت 5 میلی ثانیه اجرا می­‌شود و برنامه B روی کامپیوتر دوم که سرعت آن 128 برابر کندتر از کامپیوتر اولی می­‌باشد و اندازه برنامه برابر با 6 می‌باشد در این صورت زمان اجرای کامپیوتر دوم را محاسبه کنید. روابط بازگشتی
[فرمول] 
[فرمول]
[فرمول]
[فرمول]
1 1 میلی ثانیه
22 میلی ثانیه
3 16 میلی ثانیه
4 8 میلی ثانیه

ابتدا باید مرتبه زمانی هر دو برنامه را به دست بیارویم. برای برنامه A داریم:

[فرمول] بار
[فرمول] [فرمول] [فرمول] [فرمول] [فرمول] [فرمول]

برای برنامه B داریم، [فرمول] بنابر قضیه مستر مرتبه اجرای این برنامه برابر است با [فرمول]

بنابر مفروضات مسئله داریم [فرمول] حال با استفاده از رابطه [فرمول]

[فرمول]

متوسط خروجی الگوریتم زیر با فراخوانی [فرمول] چیست؟ روابط بازگشتی

int Test (int n, int k)
{
[فرمول] [فرمول] [فرمول] [فرمول]

10, 0, 1, 3, 2, 4, 3, 5, 4, 6
20, 0, 1, 3, 2, 4, 3, 5
31, 3, 2, 4, 3, 5, 4, 6
4خروجی تولید نمی­ کند.
با توجه به اینکه شرط else ،if ندارد و تابع test مدام خودش را فراخوانی می‌کند و شرطی برای اتمام حلقه صدا زدن وجود ندارد و کنترل دستگاه هیچگاه به cout نمی‌رسد. لذا برنامه با پیام پر شدن پشته روی سیستم خطا می­‌دهد. 

نمونه سوالات درخت‌ها درس ساختمان داده

آسان یک درخت دودویی با ۶ گره داده شده است که هر گره فقط فرزند چپ دارد. با چند عمل دوران راست (بدون دوران چپ) می‌توان این درخت را به درختی تبدیل کرد که هر گره فقط فرزند راست داشته باشد. کم­ ترین مقدار ممکن را انتخاب کنید. درخت‌ها
14
25
36
47
درخت اولیه یک درخت اُریب از چپ است که می‌خواهیم به یک درخت اُریب از راست تبدیل کنیم که کافی است هر دفعه از یک دوران به راست به محوریت گره فرزند مستقیم ریشه بزنیم تا درخت نهایی حاصل شود که با ۵ دوران این عمل انجام می‌گیرد. به طوری کلی، یک درخت اُریب از چپ با n گره را می­ توان با 1-n دوران از راست (بدون دوران چپ) به درخت اُریب از راست تبدیل کرد.
متوسط پیمایش Preorder و Postorder یک درخت دودویی داده شده است. پیمایش inorder آن، کدام است؟ درخت‌ها

Preorder: fgbceda

Postorder: gedcabf

1gfecdba
2gfecabd
3gfecbda
4نمی‌توان به دست آورد.
حل تشریحی این تست را می‌توانید در تست 68 نکته و تست تکمیلی ساختمان داده و الگوریتم 99 استاد رضوی مشاهده کنید
متوسط دنباله‌ی jfcbadeghik پیش‌ترتیب یک درخت دودویی جست‌وجوی T است. کدام‌یک از گزینه‌های زیر دنباله‌ی پس‌ترتیب T است؟ درخت‌ها
1abdecihgfkj
2 badecihgfkj
3 abdecighfkj
4 abedcihgfkj
حل تشریحی این تست را می‌توانید در تست 305 نکته و تست ساختمان داده و الگوریتم استاد رضوی مشاهده کنید.
آسان کدام‌یک از آرایه‌های زیر می‌­تواند یک Heap باشد؟ درخت‌ها
1
  0 1 2 3 4 5 6 7 8 9 10
[فرمول] 87 48 52 29 23 48 49 21 12 24 17
2
  0 1 2 3 4 5 6 7 8 9 10
[فرمول] 80 35 52 30 23 48 49 21 12 1 2
3
  0 1 2 3 4 5 6 7 8 9 10
[فرمول] 87 30 52 31 23 48 51 29 12 22 17
4
  0 1 2 3 4 5 6 7 8 9 10
[فرمول] 80 31 52 30 23 50 49 21 12 19 47
در بین گزینه فقط آرایه‌ی
  0 1 2 3 4 5 6 7 8 9 10
[فرمول] 80 35 52 30 23 48 49 21 12 1 2
یک MaxHeap می‌باشد.
متوسط فرض کنید اعداد ۱ تا ۱۰۰ به صورت تصادفی در یک BST درج شده‌­اند. اولین عدد (ریشه) ۵۰ است. با چه احتمالی در روند اضافه شدن اعداد به درخت، دو عدد ۵ و ۱۲ با هم مقایسه می‌شوند؟ درخت‌ها
1 [فرمول]
2 [فرمول]
3[فرمول]
4 [فرمول]

اعداد ۵ تا ۱۲ را در نظر بگیرید که !۸ جایگشت دارند. اگر عدد ۵ یا ۱۲ زودتر از 4 تا 11 وارد شوند حتماً 5 در ۱۲ با هم مقایسه می‌شوند. تعداد حالاتی که 5 زودتر وارد شود !7 و تعداد حالاتی که ۱۲ زودتر وارد شود نیز !7 است پس:

[فرمول]

متوسط در یک ساختمان داده Red-Black Tree با n عنصر، حداکثر تعداد دوران در درج یک عنصر کدام است؟ درخت‌ها
11
22
3[فرمول]
4 متغیر است.

درج هر عنصر در ساختمان داده Red-Black Tree یا منجر به تغییر رنگ می‌شود و یا حداکثر ۲ دوران انجام می‌شود.

کدام گزینه پیمایش preorder یک درخت جستجوی دودویی BST با پیمایش postorder به صورت زیر است؟ درخت‌ها

20 ,26 ,22 ,24 ,23 ,10 ,15 ,6 ,5 :PostOrder

122 ,23 ,24 ,26 ,15 ,5 ,6 ,10 ,20
2 23 ,24 ,22 ,26 ,15 ,5 ,6 ,10 ,20
3 26 ,23 ,24 ,22 ,20 ,15 ,10 ,5 ,6
4 22 ,24 ,26 ,10 ,6 ,5 ,15 ,23 ,20

با توجه به این که پیمایش inorder یک درخت BST صعودی است با داشتن دو پیمایش inorder و preorder درخت قابل ترسیم است.

20 ,26 ,22 ,24 ,23 ,10 ,15 ,6 ,5: Post

26 ,24 ,23 ,22 ,20 ,15 ,10 ,6 ,5: In

6

متوسط یک درخت دودویی کامل minheap با اندازه ۱۰۲۴ که اعداد بین [1023...1] می‌­باشد و هر کدام از اعداد فقط یک بار در این درخت استفاده شده است. عمق هر گره در این درخت برابر با طول مسیر از ریشه تا آن گره است اندازه حداکثر عمق در این درخت برابر است با: درخت‌ها
1 8
2 9
3 10
411

با توجه به مفروضات مسئله ریشه در عمق صفر قرار دارد. همان طور که در شکل زیر نشان داده شده است بیش ترین عمق درخت برابر با ۹ می‌­باشد.

7

دشوار در یک درخت دودویی کامل با n گره و ارتفاع h مجموعه تمامی ارتفاع گره‌ها برابر است با: درخت‌ها
1O(n)
2 O(n-h)
3 O(n log n)
4O(log n)

در یک درخت باینری کامل هر سطح شامل 2i گره می‌­باشد (همچنین هر گره در سطح i دارای عمق i و ارتفاع h-i می‌باشد) حال می‌خواهیم مجموعه تمامی ارتفاع‌ها را حساب کنیم.

[فرمول]

حال طرفین را در 2 ضرب می‌کنیم

[فرمول]

حال S را از رابطه­‌ی 2S-S بدست می‌­آوریم 

[فرمول]

با توجه به این که مجموع تمامی گره‌ها در یک درخت کامل برابر n است داریم [فرمول] بنابراین داریم [فرمول] در نهایت با جایگذاری داریم

[فرمول]

متوسط کدام گزینه صحیح است؟
الف) حداکثر تعداد گره‌های یک درخت دودویی با L برگ
ب) حداقل و پ) حداکثر تعداد گره‌­های یک درخت دودویی محض با ارتفاع h (درختی که هر گره آن یا فرزند ندارد یا دو فرزند دارد.) درخت‌ها
1 الف: [فرمول]، ب: [فرمول] و پ: [فرمول]
2الف: [فرمول]، ب: [فرمول] و پ: [فرمول]
3الف: [فرمول]، ب: [فرمول] و پ: [فرمول]
4هیچکدام
الف) ارتباطی بین تعداد برگ‌ها و تعداد گره‌­های یک درخت وجود ندارد و بنابراین سه گزینه اول رد می‌­شوند.
ب) حداقل تعداد گره‌­های یک درخت دودویی محض با ارتفاع h زمانی رخ می‌دهد که درخت شبیه یک مسیر باشد که از هر گره‌ی آن یک فرزند اضافه نیز خارج شده باشد. در این صورت تعداد گره‌­های هر سطح ۲ است که به ­علاوه گره‌ی ریشه تعداد کل گره‌ها برابر ۱+ h2 خواهد بود. 
پ) حداقل تعداد گره‌های یک درخت دودویی محض با ارتفاع h زمانی رخ می‌دهد که درخت پر باشد که یک درخت پر با ارتفاع h دارای [فرمول] گره می‌باشد.

نمونه سوالات مرتب سازی درس ساختمان داده

آسان در یک آرایه A به اندازه n ، اگر [فرمول] و [فرمول] می‌گوییم که زوج (i,j) یک «زوج- معکوس» (inversion) در A است. بیشترین تعداد زوج- معکوس‌ها در یک آرایه n عضوی چندتاست؟ مرتب سازی
1[فرمول]
2 [فرمول]
3[فرمول]
4 [فرمول]

راه حل 1 عدد گذاری)

با توجه به اینکه گزینه ها رابطه دقیقی از n داده اند کافیست برای n=2 چک کنیم و گزینه صحیح را پیدا کنیم:

برای n=2 و یک مجموعه دو عضوی، بیشترین تعداد زوج معکوس به صورت A=[max min] خواهد بود (جای max و min عدد هم می‌توانید بذارید مثلا A = [25 14]) در نتیجه بیشترین تعداد زوج معکوسی برابر با 1 است و فقط گزینه 1 صحیح است.

راه حل 2 اثبات)

به توضیحات  زیر توجه کنید:

وارونگی نسبت به صعودی بودن:

وقتی یک آرایه داریم و برای دو عنصر A[i] , A[j] با جایگاه (اندیس) به ترتیب i, j شرط زیر برقرار است می‌گوییم که یک وارونگی (زوج- معکوس بر اساس این تست یا inversion) داریم.

[فرمول]

برای پیدا کردن وارونگی ها از سمت چپ به راست، حرکت می‌کنیم تمامی عناصری که از یک عنصر کوچکتر هستند با آن عنصر وارونه هستند.

مثال) آرایه زیر چند وارونگی دارد:

[فرمول]

وارونگی ها:

[فرمول]

در کل 7 وارونگی داریم.

نکته) آرایه صعودی وارونگی ندارد.

نکته) آرایه نزولی max تعداد وارونگی دارد.

راه اثبات 1)

چون هر عنصر با تمامی عناصر بعدش وارونگی دارد پس تعداد وارونگی آرایه نزولی برابر است با 

[فرمول]

دقت کنید تعداد وارونگی ها را دوبار نشمارید برای مثال عنصر آخر با تمامی عناصر قبل از خودش وارونگی دارد اما چون در محاسبه [فرمول] قبلی این وارونگی ها به حساب آورده ایم نباید [فرمول] وارونگی هم برای عنصر آخر جمع کنیم.

راه اثبات 2)

هر دو عنصری که انتخاب کنیم چون آرایه نزولی است قطعا شرط j > i but A[i] > A[j] برقرار است پس تعداد وراونگی برابر تعداد انتخاب بدون ترتیب دو عنصر از n عنصر است.

[فرمول]

موارد گفته شده را در آرایه نزولی زیر می‌توانید امتحان کنید.

[فرمول]

نکته) متوسط تعداد وارونگی ها در یک آرایه برابر با [فرمول] است.

اثبات:

روش 1:

فرض کنید L یک لیست دلخواه از عناصر است و [فرمول] لیستی با عناصر L است که به صورت برعکس چیده شده است برای مثال:

[فرمول]

حالا دو عضو از لیست L انتخاب می‌کنیم، برای این کار [فرمول] حالت وجود دارد. دو عضوی که انتخاب کردیم در حداقل یکی از لیست های [فرمول] یا [فرمول] با یکدیگر وارونگی دارند. بنابراین می‌توان نتیجه گرفت در دو لیست [فرمول] و [فرمول] در مجموع [فرمول] وارونگی وجود دارد. 

حال برای اعضای هر لیستی [فرمول] جایگشت وجود دارد که این تعداد جایگشت را به دو مجموعه ی مجزا که یکی شامل [فرمول] ها و دیگری شامل [فرمول] ها است تقسیم می‌کنیم (به عبارت دیگر نصفی از جایشگت ها برعکس شده ی نصفه ی دیگر هستند). در نتیجه می‌توان فهمید که میانگین وارونگی ها در کل جایشگت های برابر است با [فرمول].

روش 2 (استقرا):

در استقرا ابتدا برای تعدادی عدد کوچک درستی قضیه [فرمول] را چک می‌کردیم و سپس قضیه را برای [فرمول] درست فرض می‌کردیم و برای [فرمول] درستی آن را اثبات می‌کردیم. برای قضیه "تعداد میانگین وارونگی برابر است با [فرمول]" ابتدا برای آرایه ای با n=1 آن را چک می‌کنیم سپس برای P(K) ان را اثبات می‌کنیم. (اثبات کامل را در این لینک می‌توانید مطالعه کنید)

نکته) زمان اجرا الگوریتم مرتب سازی درجی مستقیماً به تعداد وارونگی ها بستگی دارد و اگر آرایه    وارونگی داشته باشد زمان اجرای مرتب سازی درجی برابر [فرمول] است.

نکته) با مرتب سازی درجی و ادغامی می‌توان تعداد وارونگی ها شمرد.

نحوه شمردن مرتب سازی درجی:

در الگوریتم مرتب سازی درجی یک شمارنده اضافه می‌کنیم. هر جابه‌جایی که انجام شد یکی به شمارنده اضافه می‌کنیم به معنی اینکه هر این جابه‌جایی به دلیل یک وارونگی بوده که به وسیله الگوریتم حل شده.

یاددآوری:

در مرتب سازی درجی هربار از عنصر دوم شروع می‌کنیم هر عنصر را در انتهای آرایه درج می‌کنیم با عناصر قبلی مقایسه می‌کنیم اگر جایشان درست نبود باید جابه‌جایی انجام میدادیم برای مثال:

[فرمول]

ابتدا 4 را درج می‌کنیم پس جایش باید با 12 تغییر کند. [فرمول]

سپس 9 را درج می‌کنیم و دوباره 9 جایش را با 12 تغییر می‌دهد. [فرمول]

7 را درج می‌کنیم به ترتیب جایش با 12 و 9 تغییر می‌دهد. [فرمول]

5 را درج می‌کنیم جایش را با 12، 9 و 7 تغییر می‌دهد. [فرمول]

در مجموع 7 جابه‌جایی و در نتیجه 7 وارونگی داشتیم.

نحو شمردن مرتب سازی ادغامی:

در این الگوریتم نیز یک کانتر می‌گذاریم. و هر وقت کسی از لیست [فرمول] انتخاب شد کانتر را با تعداد تمامی عناصر موجود در لیست [فرمول] جمع میزنیم و این کار را در تمامی مراحل مرتب سازی ادغامی انجام می‌دهیم. ( از مقایسه آرایه های کوچک شده و تک عنصری تا آخرین مرحله.)

8

متوسط آرایه [فرمول] از اعداد داده شده است. می‌خواهیم با مقایسه‌ی اعداد آرایه، دو عدد x و y [فرمول] را بدست آوریم به ‌طوری‌که [فرمول] عنصر [فرمول] مقداری کم‌تر از n ،x عنصر [فرمول] مقداری بین [فرمول] و [فرمول] و [فرمول] عنصر بقیه مقداری بیشتر از [فرمول] داشته باشند. یک الگوریتم کارا برای حل این مسئله به میزان [فرمول] حافظه‌ی اضافی (علاوه بر حافظه‌ی [فرمول]) مصرف می‌کند و به زمان [فرمول] نیاز دارد. کدام‌یک، بهترین جواب برای این مسئله است؟ مرتب سازی
1  [فرمول] و [فرمول]
2[فرمول] و [فرمول]
3 [فرمول] و [فرمول]
4 [فرمول] و [فرمول]
حل تشریحی این تست را می‌توانید در تست 159، نکته و تست ساختمان داده و الگوریتم استاد رضوی مشاهده کنید.
متوسط در مرتب‌­سازی سریع برای مرتب کردن آرایه‌ای با n عنصر، برای انتخاب محور از میان n عنصر [فرمول] عنصر اول آرایه را انتخاب و با مرتبه O(n) آن را مرتب می­‌کنیم و محور را عنصر میانه این عناصر می­‌گیریم مرتبه‌­ی زمانی الگوریتم مرتب­‌سازی سریع بعد از اعمال این موارد برابر است با: مرتب سازی
1[فرمول]
2 [فرمول]
3 [فرمول]
4 [فرمول]

بنابر صورت سوال به رابطه بازگشتی زیر می‌رسیم. 

[فرمول]

که با استفاده از تئوری مستر و یا درخت مرتبه اجرا برابر با [فرمول] می­‌شود. 

آسان کدام‌­یک از گزینه­‌های زیر به‌درستی ارتباط بین رابطه زمانی در بهترین حالت و موارد مطرح شده را به‌‌درستی بیان می‌­کند. مرتب سازی

[فرمول]

P) انتخابی     Q) مرتب­‌سازی درجی    R) جست‌و‌جوی دودویی    S) جست‌و‌جوی ادغامی 

1 [فرمول]
2 [فرمول]
3 [فرمول]
4 [فرمول]

مرتبه اجرا در بهترین حالت برای مرتب­‌سازی انتخابی برابر با [فرمول] ادغامی برابر [فرمول]، مرتب‌سازی درجی برابر [فرمول] و جست‌و‌جوی دودویی برابر [فرمول]می‌­باشد. 

آسان آرایه S که شامل n عنصر عدد صحیح مرتب شده می‌­باشد. اگر t(n) نشان دهنده‌­ی کارآمدترین الگوریتم باشد تا نشان دهد که دو عددی وجود دارد که مجموع اعداد آن‌ها کمتر از ۱۰۰۰ باشد مقدار t(n) برابر است با: مرتب سازی
1[فرمول]
2 [فرمول]
3 [فرمول]
4[فرمول]
چون آرایه مرتب شده است فقط کافی است دو عنصر اول را جمع کنیم تا ببینیم درست است یا خیر، پس مرتبه اجرایی آن برابر (1)O می‌­باشد. 
دشوار فرض کنید عناصر آرایه [فرمول] به صورت [فرمول] هستند (یعنی تا درایه با انديس i به صورت صعودی و از این درایه به بعد نیز به صورت نزولی مرتب شده­‌اند). کاراترین الگوریتم برای یافتن انديس i در بدترین حالت از چه مرتبه‌ی زمانی است؟ مرتب سازی
1 [فرمول]
2[فرمول]
3 [فرمول]
4 [فرمول]

مرتب بودن دو طرف عنصر P[i] استفاده از ایده جست­‌و‌جوی دودویی را فراهم می‌کند. در واقع می‌­توانیم مشابه الگوریتم جست‌­و‌جوی دودویی عمل کنیم ولی جهت جست‌­و‌جو را سه عنصر وسط آرایه تعیین می‌کنند. با مقایسه عنصر وسط آرایه با عناصر قبل و بعدش، یکی از سه حالت زیر رخ خواهد داد:

  • حالت اول: [فرمول]          در این حالت باید جست‌­و‌جو را در نیمه اول آرایه [فرمول] ادامه دهیم.
  • حالت دوم: [فرمول] در این حالت باید جست­‌و‌جو را در نیمه دوم آرایه [فرمول] ادامه دهیم.
  • حالت اول: [فرمول]
    در این حالت اندیس مورد جست‌­و‌جو پیدا شده است و پاسخ مسئله می‌باشد.

بنابراین در هر فاز الگوریتم، یا پاسخ مسئله را به دست می‌آوریم و یا باید در یکی از نیمه‌های آرایه به جست­‌و‌جو را ادامه دهیم. پس اگر T(n) تابع پیچیدگی زمانی این الگوریتم باشد، رابطه بازگشتی آن به صورت زیر خواهد بود:

[فرمول]

که مرتبه زمانی این رابطه بازگشتی O(lgn) می‌­باشد، یعنی در بدترین حالت مرتبه الگوریتم [فرمول] است.

آسان اگر در الگوریتم BucketSort برای مرتب‌­سازی هر bucket از الگوریتم (الف) InsertionSort با زمان اجرای [فرمول] در بدترین حالت و (ب) MergeSort با زمان اجرای [فرمول] در همه‌ی حالات، استفاده کنیم. امید ریاضی زمان اجرای این الگوریتم کدام خواهد بود؟ مرتب سازی
1 الف:  [فرمول] و ب: [فرمول]
2 الف: [فرمول] و ب: [فرمول]  
3الف: [فرمول] و ب: [فرمول] 
4الف: [فرمول] و ب: [فرمول]
در هر دو مورد (الف) و (ب) امید ریاضی زمان اجرای الگوریتم BucketSort از مرتبه‌ی [فرمول] خواهد بود.
دشوار فرض کنید n کوزه­‌ی آب قرمز رنگ و n کوزه‌ی آب سبز رنگ داده شده است که شکل و اندازه­‌ی تمام آنها متفاوت است. تمامی کوزه‌­های قرمز میزان آب متفاوتی نسبت به یک دیگر نگه می‌­دارند و همین ­طور تمامی کوزه‌های سبز میزان آب متفاوتی نسبت به یک دیگر نگه می­‌دارند. علاوه براین به ازای هر کوزه­‌ی قرمز یک کوزه‌­ی سبز با همان ظرفیت وجود دارد و بالعکس. هدف گروه‌بندی کوزه‌­ها به صورت جفت کوزه­‌های قرمز و سبز با ظریف یکسان می­‌باشد. برای انجام این می‌توان به این صورت عمل کرد که یک جفت کوزه انتخاب می‌­کنیم که یکی قرمز و دیگری سبز باشد. کوزه‌ی قرمز را با آب پر می‌کنیم و سپس آب درون آن را در کوزه‌ی سبز می‌ریزیم. با این عمل می‌­توان تشخیص داد که آیا ظرفیت این دو کوزه برابر است و یا کدام­ یک از کوزه‌ها ظرفیت بیشتری دارد. اگر چنین مقایسه‌ی به یک واحد زمان نیاز داشته باشد، کران پایین تعداد مقایسه‌­های مورد نیاز در هر الگوریتمی که این مسئله را حل کند از چه مرتبه‌ای است؟ مرتب سازی
1 [فرمول]
2 [فرمول]
3 [فرمول]
4 [فرمول]

برای به دست آوردن کران پایین این مسئله، محاسبات را از دید درخت تصمیم‌گیری این مسئله نگاه می‌کنیم. هر گره‌­ی داخلی این درخت از یک جفت کوزه (یک قرمز و یک سبز) که مقایسه می‌کنیم تشکیل شده است و دارای سه یال خروجی دارد. (کوزه‌ی قرمز ظرفیت کمتر، ظرفیت برابر و یا ظرفیت بیشتر نسبت به کوزه‌ی سبز). برگ‌های این درخت، گروه­‌بندی‌های یکتای کوزه­‌ها را نشان می‌دهد. ارتفاع درخت تصمیم این مسئله برابر تعداد مقایسه‌های الگوریتم در بدترین است. تعداد برگ­‌های این درخت برابر !n می‌­باشد چون هر جایگشت از کوزه‌های قرمز به همراه کوزه­‌ی سبز متناظرش یک نتیجه متفاوت را حاصل می­‌کند. هر شاخه درخت از درجه ۳ می­‌باشد و بنابراین این درخت حداکثر [فرمول] برگ خواهد داشت. بنابراین خواهیم داشت:

[فرمول]

نمونه سوالات جداول درهم ساز درس ساختمان داده

دشوار یک جدول درهم‌سازی پویا (Dynamic) با نام DT را در نظر بگیرید که اندازه‌ی آن در ابتدا 1 است و آن درایه نیز خالی است. درهم‌سازی با روش بسته (Closed Hashing) است و با یک تابع درهم‌سازی ساده و Linear-Probing انجام می‌شود. پویایی این جدول به این صورت تامین می‌شود که اگر هنگام درج یک عنصر Load Factor [فرمول] جدول یک باشد، جدول را گسترش داده و عنصر جدید را درج می‌کنیم. استراتژی گسترش به گونه است که جدول جدید با سایز دو برابر جدول فعلی ایجاد می‌کنیم، تمامی عناصر جدول قبلی را در آن درج می‌کنیم و جدول قبلی را پاک می‌کنیم. اگر هزینه واقعی یک عمل درج مستقیم هر عنصر در جدول را 1 و هزینه واقعی عمل گسترش را برابر تعداد درج‌های مورد نیاز فرض کنیم، کدام گزینه در مورد هزینه سرشکن یک عمل درج و حدود Load Factor این جدول صحیح است؟ جداول درهم ساز
1 [فرمول]
2 [فرمول]
3 [فرمول]
4 هیچ کدام
مجموع هزینه‌ها به ازای دنباله‌ای از n عمل درج برابر [فرمول] است، بنابراین هزینه سرشکن عمل درج [فرمول] می‌باشد. همچنین چون همواره نیمی از جدول پر است، Load Factor حداقل [فرمول] می‌باشد.
متوسط جدول درهم‌­سازی با اندازه‌­ی ۱۰ (خانه‌­های شماره‌ی صفر تا ۹) زیر را در نظر بگیرید که از آدرس‌دهی باز بر‌اساس تابع درهم‌سازی [فرمول] و Linear Probing استفاده می‌کند. بعد از درج ۶ کلید، محتوای این جدول به صورت زیر خواهد بود:
9 8 7 6 5 4 3 2 1 0
    33 46 52 34 23 42    

چه تعداد از دنباله‌های متفاوت درج کلیدها در این جدول وجود دارد که جدول بالا را نتیجه می‌دهد؟

جداول درهم ساز
110
220
3 30
4 40
در این جدول، کلیدهای ۴۲، ۲۳، ۳۴ و ۴۶ در مکان صحیح خود هستند و با هر ترتیبی می‌توانند درج شده باشند. ولی کلید ۵۲ باید حتمأ بعد از عناصر 4۲، ۲۳ و ۳۴ درج شده باشد، چون در زمان درج آن این مکان‌ها پر بوده است که ۵۲ در خانه­‌ی ۵ قرار گرفته است. همچنین کلید ۳۳ نیز باید بعد از تمامی کلیدها درج شده باشد. بنابراین کل تعداد دنباله‌­های مختلف درج برابر [فرمول] می‌باشد.
متوسط اعمال Search ،Insert و Extract-Min را بر روی یک جدول در هم‌سازی باز (Open­Hashing) انجام می‌دهیم. کدام­ یک از گزینه­‌های زیر زمان اجرای یک پیاده­‌سازی کارا (Efficient) از این جدول با n عنصر می‌باشد؟ جداول درهم ساز
1 (۱)Insert: O، Search: O(n) و O(1) :Extract-Min 
2 (۱)Insert: O، Search: O(lgn) و Extract-Min: O(1)
3(1)Insert: O، Search: O(n) و Extract-Min: O(n)
4 (lgn)Insert: O، Search: O(lgn) و Extract-Min: O(lgn)
با Augment کردن جدول درهم­‌سازی زنجیره­ای به صورت زنجیره‌هایی به شکل یک جدول جست‌و‌جوی متوازن، گزینه ۴ نتیجه می‌شود. گزینه ۱ و ۲ کران پایین الگوریتم‌­های مرتب‌­سازی مقایسه‌­ای در بدترین حالت را نقض می­‌کنند.

نمونه سوالات آرایه، جستجو در آرایه، لیست پیوندی، پشته، صف درس ساختمان داده

متوسط الگوریتم زیر روی لیست حلقوی داده شده، چه مقداری چاپ می­‌کند؟ آرایه، جستجو در آرایه، لیست پیوندی، پشته، صف
9
[فرمول]{ [فرمول] {  [فرمول]
12
22048
31024
4 1
این الگوریتم نودها را یک در میان حذف می‌کند. اگر اولین نود حذفی، شماره ۲ باشد آنگاه برای یافتن آخرین عدد کافی است ۲۰۴۸ را باینری بنویسیم و چرخش به سمت چپ دهیم (|ژوزف) یعنی: [فرمول] عدد 1 باقی می‌ماند ولی با توجه به موقعیت ­p ، اولین نود حذفی شماره ۳ است پس عدد باقیمانده ۲ می­‌باشد.
دشوار کلید­های [فرمول] تا [فرمول] براساس احتمال جست‌و‌جو شدن به‌صورت نزولی مرتب شده­‌اند. یعنی احتمال جست‌و‌جو شدن کلید [فرمول] از احتمال جست‌و‌جو شدن [فرمول] بیشتر است. با شروع از [فرمول]، این کلیدها را به‌ترتیب در یک درخت جست‌و‌جوی خالی درج می­‌کنیم در مورد این الگوریتم کدام گزینه نادرست است؟ آرایه، جستجو در آرایه، لیست پیوندی، پشته، صف
1درخت حاصل کم‌ترین میانگین تعداد مقایسه­‌ها را در جست‌و‌جوی موفق دارد.
2 زمان اجرای این الگوریتم در بدترین حالت است.
3 کلید [فرمول] در برگ درخت قرار خواهد‌گرفت.
4 کلید [فرمول] در ریشه درخت قرار خواهد‌گرفت.
به‌ عنوان مثال نقض فرض کنید احتمال جست‌و‌جو شدن کلید [فرمول] برابر 0/41، کلید [فرمول] پا برابر 0/30 و کلید [فرمول] برابر 0/29 باشد. در این‌صورت الگوریتم درخت T1 را تولید می­‌کند در حالی‌که درخت جست‌و‌جوی بهینه درخت T2 است.
متوسط خروجی الگوریتم زیر بر روی لیست پیوندی با داده­‌های 1, 2, 3, 4, 5, 6, 7 که به ترتیب پشت سرهم از چپ به راست در لیست پیوندی قرار دارند چیست؟ آرایه، جستجو در آرایه، لیست پیوندی، پشته، صف

struct node
{
int value;
struct node * next;
};
void rearrange(struct node * list)
{
struct node * p,  * q;
int temp;
if ((!list) || !list -> next)
     return;
p=list; q=list-> next;
while(q)
{
     temp = p-> value;
     p-> value= q-> value; 
     q-> value= temp;
    q=-> next;    
  p=p ? q-> next:. ; 
        }
}

11, 2, 3, 4, 5, 6, 7
22, 1, 4, 3, 6, 5, 7
3 1, 3, 2, 5, 4, 7, 6
4 2, 3, 4, 5, 6, 7, 1
الگوریتم مورد نظر اقدام به تعویض محتویات هر گره با گره بعدی خود می‌کند و این کار را با شروع از گره اول می‌کند. 
متوسط نوعی خاصی از پشته در اختیار داریم که با هر عمل push دو عنصر بالای پشته خود را در پشته قرار می‌­دهد و در هر عمل pop کردن اگر تعداد pop‌هایی که تا قبل از عمل pop انجام شده است فرد باشد عنصر بالای پشته را برمی­‌گرداند و اگر تعداد pop‌ها زوج باشد دو عنصر بالای پشته را به ترتیب برمی‌گرداند با فرض خالی بودن پشته در ابتدا و داده ورودی زیر کدام خروجی را نمی‌توان تولید کرد. (ورودی داده­‌ها از چپ به راست می‌باشد) آرایه، جستجو در آرایه، لیست پیوندی، پشته، صف

ABCDEFGH

1 BADFECHG
2 DCBHGFEA
3FEDCHGBA
4 DCFEBHGA

برای گزینه ۱ ابتدا B و A را داخل پشته قرار می‌دهیم و بلافاصله می‌خوانیم، چون مقدار pop صفر است دو عنصر بالای پشته فراخوانی می‌­شود سپس D و C را داخل پشته قرار می­‌دهیم و دوباره pop می‌­کنیم، چون مقدار pop فرد است فقط مقدار D بر می‌گردد و دوباره عمل push برای F و E انجام و بلافاصله pop که دو عنصر بالا را بر می­‌گرداند و سپس مجددا pop که فقط یک عنصر بر می‌گرداند و در نهایت H و push ،G می­‌شود و دوباره pop می‌شود و گزینه ۱ در نهایت تولید می‌شود. 

 برای مورد ۲ داریم:

10

برای مورد 4 داریم: 

11

فقط برای گزینه 3 نمی‌توان رسم کرد چون DC با هم آمده که امکان‌پذیر بنابر مسئله نمی‌باشد. 

نمونه سوالات ساختمان داده این صفحه از چه منابعی است؟

در این صفحه از نمونه سوالات ساختمان داده کرمن، نمونه سوالات امتحانی ساختمان داده دانشگاه تهران، نمونه سوالات ساختمان داده دانشگاه شریف، نمونه سوالات استخدامی درس ساختمان داده، نمونه سوالات ساختمان داده با جواب دانشگاه ازاد و همین طور سوالات ساختمان داده کنکور ارشد و دکتری رشته های مختلف از جمله کامپیوتر و آی تی و علوم کامپیوتر استفاده شده است.

آیا نمونه سوالات ساختمان داده این صفحه جواب دارد و به درد چه کسانی می‌خورد؟

بله. تمامی سوالات ساختمان داده این صفحه با پاسخ های کاملا تشریحی در اختیار شما قرار گرفته است. سوالات این صفحه به درد دانشجویان مقطع لیسانس رشته های مختلف، داوطلبان کنکورهای مقاطع مختلف از جمله ارشد و دکتری، داوطلبان آزمون های استخدامی و افرادی است که به دنبال حل مسائل بیشتر برای مسلط شدن روی ساختمان داده هستند

همچنین هر گونه سوالی در مورد کلاس‌های آنلاین کنکور کامپیوتر و یا تهیه فیلم‌ها و یا رزرو مشاوره تک جلسه‌ای تلفنی با استاد رضوی دارید می‌توانید به طرق زیر از تیم پشتیبانی بپرسید:

آی دی تلگرام تیم پشتیبانی:     konkurcomputer_admin@

تماس با پشتیبانی:   09378555200

امتیازدهی3.2 1 1 1 1 1 1 1 1 1 13.20 امتیاز (5 رای)
اشتراک
بارگذاری نظرات

مشتاقانه منتظر نظرات و سوالات شما هستیم

سوال شما توسط استاد رضوی پاسخ داده می‌شود و از طریق پیامک به شما اطلاع رسانی می‌شود
  • ---------------
  • ---------------
6 نظر در این صفحه ثبت شده است
avatar
سعیده
سلام اول از همه میخوام ازتون تشکر کنم به خاطر گذاشتن فیلم های رایگان استادی که انقدر با مسلط وحرفه ای درس میدن برای کسانی که واقعا میخوان درس بخونن اما از لحاظ مالی براشون سخته که این کلاس ها رو شرکت کنن. خدا به کلامتون وتنتون وعلمتون خیر وبرکت بده. دوم میخوام ازتون خواهش کنم که جزوه هایی که استاد در حین درس می‌نويسن رو چطور باید بدست بیاریم؟
avatar
رامین رضوی
سلام، وقت بخیر، خواهش میکنم، البته باید به این نکته توجه کنید که فیلم‌ها کامل نیستند و در هر درس چند جلسه اول آن قرار گرفته است و برای اینکه فیلم‌ها رو بصورت کامل داشته باشید باید آنها را تهیه کنید. در خصوص جزوات هم، جزوات در داشبورد دانشجوهایی که دوره‌ها را تهیه می‌کنند بصورت اتوماتیک قرار می‌گیرد، موفق و پیروز باشید
avatar
سعید
من برا آزمون استخدامی دارم میخونم کلا یک ماه فرصت دارم نمیتونم همه فیلمارو ببینم. همین قدر بتونم یاد بگیرم عالیه. خدا خیرتون بده
avatar
رامین رضوی
خواهش ميکنم، انشالا که موفق باشيد، البته توصيه ميکنم که فيلم همايش‌ها را مشاهده کنيد، با وضع اقتصادي فعلي کارمند شدن را توصيه نميکنم. موفق و پيروز باشيد
avatar
سعیده
آموزش شما فوقالعاده است خدا خیرتون بده. من تازه میفهمم دارم چی میخونم?
avatar
رامین رضوی
سلام، وقت بخیر، ممنونم، لطف دارید شما، انشالا همیشه موفق و پیروز باشید
هیچ نظری ارسال شده در اینجا وجود ندارد
تلگرام اینستاگرام تماس با پشتیبانی: 09378555200 تماس با پشتیبانی: 09378555200