English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java object-oriented(I)

Java object-oriented(II)

Java object-oriented(III)

Java 예외 처리

Java List

Java Queue(큐)

Java Map集合

Java Set集合

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 프로그램으로 스택(Stack) 데이터 구조 구현

    Java 예제 전체

이 예제에서는 Java로 스택 데이터 구조를 구현하는 방법을 배웁니다.

이 예제를 이해하기 위해 먼저 다음 튜토리얼을 방문해 주세요.

예제1:스택 구현을 위한 Java 프로그램

// Stack implementation in Java
class Stack {
  //스택 요소를 저장
  private int arr[];
  //스택의 정상을 나타냄
  private int top;
  //스택의 총 용량
  private int capacity;
  //스택 생성
  Stack(int size) {
    // 배열을 초기화합니다
    // 스택 변수를 초기화합니다
    arr = new int[size];
    capacity = size;
    top = -1;
  }
  // 요소를 스택의 가장 위에推送
  public void push(int x) {
    if (isFull()) {
      System.out.println("Stack OverFlow");
      // 프로그램을 종료합니다
      System.exit(1);
    }
    //스택의 가장 위에 요소를 삽입합니다
    System.out.println("插入 " + x);
    arr[++top] = x;
  }
  //스택 상단 요소 제거
  public int pop() {
    //스택이 비어 있을 때
    //弹出할 요소가 없습니다
    if (isEmpty()) {
      System.out.println("STACK EMPTY");
      //프로그램을 종료합니다
      System.exit(1);
    }
    //스택 상단 요소 제거
    return arr[top--];
  }
  //스택의 크기를 반환합니다
  public int getSize() {
    return top + 1;
  }
  // 스택이 비어 있는지 확인합니다
  public Boolean isEmpty() {
    return top == -1;
  }
  // 스택이 가득 찬지 확인합니다
  public Boolean isFull() {
    return top == capacity - 1;
  }
  // 스택의 요소를 표시합니다
  public void printStack() {
    for (int i = 0; i <= top; i++) {
      System.out.print(arr[i] + ", ");
    }
  }
  public static void main(String[] args) {
    Stack stack = new Stack(5);
    stack.push(1);
    stack.push(2);
    stack.push(3);
    System.out.print("스택: ");
    stack.printStack();
    //스택에서 요소를 제거합니다
    stack.pop();
    System.out.println("\n弹出之后");
    stack.printStack();
  }
}

출력 결과

插入 1
插入 2
插入 3
스택: 1, 2, 3,  
弹出之后
1, 2,

위의 예제에서 Java로 스택 데이터 구조를 구현했습니다.

예제2Stack 클래스를 사용하여 스택 구현

Java는 스택 구조를 구현할 수 있는 내장 클래스 Stack을 제공합니다.

import java.util.Stack;
class Main {
  public static void main(String[] args) {
    //Stack 클래스의 객체를 생성합니다.
    Stack<String> animals = new Stack<>();
    //요소를 스택 상단에 추가
    animals.push("Dog");
    animals.push("Horse");
    animals.push("Cat");
    System.out.println("Stack: " + animals);
    //스택 상단 요소 제거
    animals.pop();
    System.out.println("弹出后 Stack: " + animals);
    }
}

출력 결과

Stack: [Dog, Horse, Cat]
弹出后 Stack: [Dog, Horse]

위의 예제에서 우리는 Java의 Stack 클래스를 사용하여 스택을 구현했습니다. 여기서는

  • animals.push() - 요소를 스택 상단에 삽입

  • animals.pop() - 스택 상단 요소 제거

주의하세요, 우리는 <String>을 스택을 생성할 때 꼬리표를 사용했습니다. 이는 스택이 제너릭 타입임을 의미합니다. 제너릭에 대한更多信息를 알고 싶다면 다음을 방문하세요Java 제너릭

Java 예제 전체