さまざまなデータ構造(5)スタック2

データ構造

こんにちは。前回はスタックについて説明しました。今回は、スタッククラスとしてまとめます。

スタックのプログラム(Java)

package data_structure;

public class MyStack<E> {

    private MyLinkedList<E> myList;

    public MyStack() {
        myList = new MyLinkedList<E>();
    }

    public boolean empty() {
        return myList.size() == 0;
    }

    public E peek() {
        return myList.get(0);
    }

    public E pop() {
        E result = peek();
        myList.remove(0);
        return result;
    }

    public void push(E element) {
        myList.add(0, element);
    }

    public String toString() {
        return myList.toString();
    }
}

基本的にMyLinkedListクラスのメソッドを呼び出して済ませています。

動作確認をするプログラム

上のプログラムで作ったMyStackクラスが正しく動作するかを確かめるプログラムです。ひととおり確かめています。

package data_structure;

public class MyStackExec {

    public static void main(String[] args) {

        MyStack<Integer> stack = new MyStack<Integer>();

        System.out.println(stack.empty());

        stack.push(8);
        System.out.println(stack);

        stack.push(5);
        System.out.println(stack);

        stack.push(2);
        System.out.println(stack);

        int i = stack.pop();
        System.out.println(i);
        System.out.println(stack);

        System.out.println(stack.peek());
    }
}

実行結果は次になります。

true
[8]
[5]→[8]
[2]→[5]→[8]
2
[5]→[8]
5

スタックを作ったら、キューを作るしかないです!次回は、キューを作っていきます。予想通りの展開なので先に断っておきます。MyLinkedListクラスを使う予定です。

今回はこれでおしまい。それではまた。

Posted by 春日井 優