تا %60 تخفیف خرید برای 4 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته)

با سلام به همه دوستان و همراهان عزیز Itpro. یکی از داده ساختار هایی که در نرم افزار ها و همه سیستم عامل ها مورد استفاده قرار می دهند داده ساختار پشته است. پشته مکانیزم last in first out یا (LIFO) را پیاده سازی می کند. به این شکل که پشته فقط یک راه ورود و خروج برای داده ها دارد. پس آخرین داده ای که وارد پشته می شود هنگام خروج اولین داده ای است که خارج می شود. به عبارت دیگر وقتی که داده ای را به پشته اضافه می کنیم به سرپشته اضافه می شود. پشته یک زیرکلاس از وکتور است ولی نوع ذخیره سازی داده ها فرق می کند. نام کلاس پشته Stack است. که فقط دارای یک constructor است که دارای هیچ پارامتری نیست. علاوه بر متدهایی که کلاس Stack از کلاس Vector به ارث برده است کلاس Stack متدهای زیر را تعریف می کند.

  • متد empty: این متد چک می کند که پشته خالی است یا خیر. اگر پشته خالی باشد مقدار true و در غیر این صورت مقدار false را برمی گرداند.
  • متد peek این متد عنصر بالای پشته را برمی گرداند ولی آن را حذف نمی کند.
  • متد pop این متد عنصر بالای پشته را برمی گرداند و همچنین آن را حذف می کند.
  • متد push این متد یک ورودی از نوع object می گیرد و آن را در بالای پشته قرار می دهد و همچنین آن عنصر را برمی گرداند.
  • متد search این متد یک شئ را گرفته و آن را در پشته جستجو می کند و اگر عنصر مورد نظر پیدا شد فاصله آن را از سر پشته برمی گرداند و اگر پیدا نشد مقدار 1 برمی گرداند.

برای مثال و درک بهتر کلاس Stack به مثال زیر در مورد پشته دقت کنید

import java.util.*;

public class StackDemo {

   static void showpush(Stack st, int a) {
      st.push(new Integer(a));
      System.out.println("push(" + a + ")");
      System.out.println("stack: " + st);
   }

   static void showpop(Stack st) {
      System.out.print("pop -> ");
      Integer a = (Integer) st.pop();
      System.out.println(a);
      System.out.println("stack: " + st);
   }

   public static void main(String args[]) {
      Stack st = new Stack();
      System.out.println("stack: " + st);
      showpush(st, 42);
      showpush(st, 66);
      showpush(st, 99);
      showpop(st);
      showpop(st);
      showpop(st);
      try {
         showpop(st);
      } catch (EmptyStackException e) {
         System.out.println("empty stack");
      }
   }
}

خروجی برنامه بالا به شکل زیر خواهد بود:

stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack

Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند