آزمونآموزشتمرین‌های آموزشیمسابقات

آرایه‌ی پویا

نام و تاریخ مسابقه: مسابقه جاوا_جی‌کل 6 – 18 بهمن 1396

مباحث: رشته و آرایه

کلاس DynamicArray.java را دانلود کرده و محتوای آن را ببینید.

در این کلاس یک آرایه با نام data و سه متد با نام‌های getData برای برگرداندن آرایه‌ی data، متد add برای اضافه کردن داده به آرایه و متدdelete برای حذف داده از آرایه، وجود دارد. هم‌چنین یک متد سازنده نیز وجود دارد که برای ساخت آرایه‌ی اولیه با اندازه دلخواه، از آن استفاده می‌شود.

شما باید با توجه به توضیحات زیر، دو متد add و delete را پیاده‌سازی کنید.

  • متد (public void add(String data: پارامتر ورودی را به اولین خانه‌ی خالی آرایه‌ی data اضافه می‌کند. اگر آرایه پر شده بود، باید سایز آرایه رادو برابر کرده و سپس پارامتر ورودی را به آن اضافه کند.
  • متد (public int delete (int index: محتویات خانه‌ای از آرایه که دارای اندیس index است را پاک می‌کند و محتویات خانه‌های سمت راستش را، یک خانه به چپ شیفت می‌دهد ( به مثال توجه کنید).
    • اگر index داخل محدوده‌ی آرایه نباشد یا به یک خانه‌ی خالی اشاره کند، آرایه‌ی data هیچ تغییری نکرده و عدد 1- باید برگردانده شود.
    • اگر index مقدار معتبری داشته باشد، پس از حذف، عدد 1 باید برگردانده شود.
    • اگر با انجام عمل حذف، تعداد خانه‌های پر آرایه کمتر یا مساوی یک چهارم اندازه‌ی آرایه شد، سایز آرایه‌ی data باید نصف شود.

مثال:

در مثال زیر، آرایه‌ی data با اندازه‌ی اولیه‌ی 5 ایجاد شده است. به اندازه و محتویات این آرایه پس از هر حذف یا اضافه، دقت کنید.

DynamicArray da = new DynamicArray(5);
da.add("a");
da.add("b");
da.add("c");
//data = [a,b,c,null,null] size = 5
da.add("d");
da.add("e");
//data = [a,b,c,d,e] size = 5
da.add("f"); //array is full
//data = [a,b,c,d,e,f,null,null,null,null]  size = 10

da.delete(0);
//data = [b,c,d,e,f,null,null,null,null,null] size = 10
da.delete(2);
//data = [b,c,e,f,null,null,null,null,null,null] size = 10
da.delete(2);
//data = [b,c,f,null,null,null,null,null,null,null] size = 10
da.delete(2); //after delete: number of items:2 --> 2<10/4
//data = [b,c,null,null,null] size = 5

منظور از خانه‌های خالی، خانه‌هایی است که مقدار null دارند و خانه‌های پر، خانه‌هایی است که مقدار غیر null دارند.

آنچه باید آپلود کنید:

فقط فایل DynamicArray.java را zip کرده و بارگذاری کنید. دقت کنید که فایل DynamicArray.java در داخل هیچ پوشه‌ای نباید قرار داشته باشد و وقتی فایل زیپ را باز می‌کنیم، دقیقا و فقط فایل DynamicArray.java را ببینیم.

برای داوری تمرین، می‌توانید پاسخ خود را در سایت Quera به نحوی که در بالا گفته شد، بارگذاری کنید.

برای آشنایی با نحوه‌ی ارسال پاسخ در Quera، این مطلب را مطالعه کنید.


با ما همراه باشید:

آدرس کانال تلگرام: IranianJavaDevelopers@

آدرس اکانت توییتر: JavaCupIR@

آدرس صفحه اینستاگرام: javacup.ir

آدرس گروه لینکدین: Iranian Java Developers

نوشته های مشابه

‫2 دیدگاه ها

  1. سلام برای بررسی مشکلات جواب از کجا میتونم بفهمم اراد کارم کجا بود با اینکه مثالی که تو سوال هست رو به درستی جواب میده

    1. سلام
      تنها راهش اینه که در قسمت «سوال بپرسید» در کوئرا (بخش زیر سوالات) سوال و مشکل خود را مطرح کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا