English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 예제에서는 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로 스택 데이터 구조를 구현했습니다.
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 제너릭。