스택
데이터를 저장하기 위해 사용하는 자료구조 중 하나이다.
데이터의 입출력 순서는 후입선출[=선입후출](Last In First Out, 나중에 입력 된 것이 가장 먼저 출력된다.) 이다.
package mycode
public class MyStack {
int size;
int point;
E[] stac; // 제네릭 클래스로 스택 생성
public MyStack(int size) {
point = 0;
this.size = size;
try {
stac= new E[max] //
}
}
public void push(E x) {
if( point >= size)
System.out.println("스택이 가득 찼습니다.");
else
stac[point++] = x;
}
public void pop() {
if( point <= 0)
System.out.println("스택이 비어있습니다.");
else
stac[point--];
}
public E indexOf(E x) {
for(int i = point -1; i>=0; i--) {
if( stac[i] == x)
return i;
}
return -1;
}
public void stack_view() {
if( point <= 0)
System.out.println("스택이 비어있습니다.");
else {
for(int i=0; i< point; i++)
System.out.print(stac[i] + " ");
System.out.println();
}
}
public static void main(String[] args) {
MyStack s;
s.push(40);
s.push(8);
s.push(12);
s.push(7);
s.pop();
s.push(27);
System.out.println("스택에서 12 인덱스(-1이면 없음) : "+indexOf(12));
s.stack_view();
}
}
▲
- 스택의 데이터를 넣기 위해서 push(E x)를 사용한다.
- 스택에서 데이터를 빼기 위해서 pop()을 사용한다.
- 스택에서 해당하는 데이터의 있는 인덱스를 알기 위하여 indexOf(E x)를 사용한다.
- 스택의 어떤 데이터가 들어가 있는지 보기 위하여 스택의 데이터들을 출력하기 위해 stack_view()를 사용한다.
- 제네릭 클래스로 생성하였으므로 클래스 변수를 생성할 시 스택의 자료형을 지정할 수 있다.
'JAVA > 기초' 카테고리의 다른 글
Java static 정적 변수, 메소드 (0) | 2020.03.17 |
---|---|
Java 배열 기본값, 배열 복사 (0) | 2020.03.16 |
Java 향상된 for문, label (0) | 2020.03.16 |
Java 형변환 (0) | 2020.03.15 |
Java 데이터 타입 (0) | 2020.03.15 |