Post Page Advertisement [Top]

Stackとは?

簡単に例えて

「レゴブロックのようにデータを積み重ねたこと」

だと思えばいいと思います。

先に積んだブログは上に積んだブログを取り出す前には

出すことができません。

この塔にレゴブロックの代わりにデータが入っていればいいと思います。

下のイメージを見てください。

このイメージはWikiから持ってきました。

Pushは積むこと

Popは取り出すことを意味します。

Stackは簡単そうに見えて深くはいると難しいくなるアルゴリズムです。
コンピューターのさまざま方面で使われています。

今回はこのStackをJavaの配列を使ってコードを練ってみました。

import java.util.Scanner;

public class algo {

    public static void main(String[] args) {

        int count = 0;
        int push = 0;
        Scanner sc = new Scanner(System.in);

            int size = sc.nextInt();
            int array[] = new int[size];

        while(true) {

            String value = sc.nextLine();

            if (value.startsWith("push")) {
                String temp = value.replace("push ", "");
                push = Integer.valueOf(temp);
                value = "push";
            }

            switch (value) {
                case "push":
                    array[count] = push;
                    count++;
                    break;
                case "pop":
                    System.out.println(array[count-1]);
                    count--;
                    array[count] = 0;
                    break;
                case "size":
                    System.out.println(count);
                    break;
                case "empty":
                    if (array[0] == 0) {
                        System.out.println("1");
                    } else {
                        System.out.println("0");
                    }
                    break;
                case "top":
                    if (array[count-1] != 0 && count != 0) {
                        System.out.println(array[count-1]);
                    } else {
                        System.out.println("-1");
                    }
                    break;
            }
        }
    }

}



댓글 없음:

댓글 쓰기

Bottom Ad [Post Page]

| Designed by Colorlib