فهرست مندرجات

سوالات ۲۳ تا ۲۵

پشته یکی از داده ساختارهای پرکاربرد در علوم کامپیوتر است که دنباله‌ای از عناصر را ذخیره می‌کند. تغییرات در عناصر پشته فقط از دو نوع می‌تواند باشد:

برای مثال فرض کنید پشته‌ای به صورت {١, ۵, ۴, ٣} باشد. با اضافه کردن عضوی با مقدار ٧ به انتها، پشته به صورت {٧, ١, ۵, ۴, ٣} خواهد شد. هم‌چنین اگر از انتهای پشته‌ی {٣, ١٠, ٢} یک عنصر را حذف کنیم، پشته به صورت {١٠, ٢} خواهد شد.

اکنون می‌خواهیم یکی از روش‌های ذخیره سازی پشته در کامپیوتر را شرح دهیم. در این روش، عمل‌های زیر را می‌توان انجام داد:

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

سوال ۲۳

برنامه‌ی زیر چند واحد زمان مصرف می‌کند؟

$$create(X)$$ $$push(X, ١)$$ $$push(X, ١)$$ $$push(X, ١)$$ $$pop(X)$$ $$push(X, ١)$$ $$push(X, ١)$$ $$pop(X)$$ $$push(X, ١)$$

  1. ۱۴
  2. ۱۷
  3. ۱۹
  4. ۱۱
  5. ۱۵

سوال ۲۴

در برنامه‌ای ابتدا با دستور $create(S)$ پشته‌ی $S$ ساخته می‌شود. در ادامه‌ی این برنامه ١٣٩٨ دستور $push(S, 1)$ وجود دارد. این برنامه چند واحد زمان مصرف می‌کند؟

  1. ۵۴۹۳
  2. ۴۰۹۵
  3. ۵۴۸۲
  4. $2^{1398} + 1397$
  5. $2^{1399} + 1399$

راهنمایی

بررسی کنید هزینه‌ی مصرفی در مراحل ‌$2^i + 1$ چقدر است.

سوال ۲۵

یک برنامه حداقل چند خط باید داشته باشد تا در انتهای آن دست کم ١٠٠ واحد حافظه (در مجموع برای پشته‌ها) وجود داشته باشد؟

  1. ۲۷
  2. ۳۵
  3. ۵۱
  4. ۲۲
  5. ۲۳

راهنمایی

ثابت کنید حالت بهینه‌ای وجود دارد که در آن تمام عملیات‌های ‌$push$ بر روی یک پشته انجام شده‌اند و همچنین هیچ عمل $push$‌ای ‌بعد از یک عمل $copy$ نیامده‌ است.