스택 

데이터를 저장하기 위해 사용하는 자료구조 중 하나이다.

데이터의 입출력 순서는 후입선출[=선입후출](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

+ Recent posts