본문 바로가기

STUDY/자료구조

#3 스택(Stack)

스택 자료구조

스택(Stack)은 데이터가 입력되면 입력되는 순서대로 쌓고, 나중에 들어온 것부터 먼저 사용하는 자료구조이다.

LIFO(Last In First Out)형이라고 하며, 스택에 데이터를 넣는 것을 'PUSH' 데이터를 꺼내는 것을 'POP'이라고 한다. 

스택 구현은 배열을 이용해도 되고 연결 리스트를 이용해도 된다.

 

스택 자료구조는 프로그램의 수행 과정에서 함수를 불러 수행하는 경우와 수식의 연산을 수행하는 과정에서 사용한다.

 

*자바로 구현한 스택

package dataStructure;

public class Stack {
	
	public static void main(String[] args) {
		
		java.util.Stack<Integer> stack = new java.util.Stack<Integer>();
		
		System.out.println("Stack created : ");
		
		for(int i=0; i<10; i++) 
		stack.push(new Integer(i)); //0~9의 수로 스택을 구성한다.
		
		System.out.println("1pop : " + stack.pop()); //스택의 값을 뺀다
		System.out.println("2pop : " + stack.pop()); //스택의 값을 뺀다
		System.out.println("3pop : " + stack.pop()); //스택의 값을 뺀다
		System.out.println("4pop : " + stack.pop()); //스택의 값을 뺀다
	}

}

출력 결과

 

*파이썬으로 구현한 스택

def Stack():
    stack = []
    
    stack.append(1)
    stack.append(2)
    stack.append(3)
    stack.append(4)
    stack.append(5)
    print(stack)
    
    while stack:
        print("POP value is ", stack.pop())
        
Stack()

출력 결과

 

gitHub : https://github.com/DevCheonYuJung/data_structure

반응형

'STUDY > 자료구조' 카테고리의 다른 글

#4 큐(Queue)  (0) 2021.06.30
#2 리스트와 연결리스트  (0) 2020.01.13
#1 자료구조와 알고리즘이란?  (0) 2020.01.13