본문 바로가기

스택

[자료구조/java] 덱 (Deque) - 연결 자료구조 방식 구현 * 덱 (Deque) "큐의 양쪽 끝에서 삽입과 삭제가 모두 발생할 수 있는 큐로서, 큐와 스택의 성질을 모두 가지고 있는 자료구조이다." 따라서, 덱의 insertFront(), deleteFront() 연산은 Front 를 top으로 생각했을 때 스택의 push(), pop() 연산과 같고,insertRear(), deleteRear() 연산은 rear를 스택의 top으로 생각했을 때 스택의 push(), pop() 연산과 같다.그리고 덱의 insertRear(), deleteFront() 연산은 일반 큐의 enQueue(), deQueue() 연산과 같다. DequeNode.java123456789101112131415161718package Deque; public class DequeNode {.. 더보기
[자료구조/java] 스택의 응용 - 수식의 괄호 검사 (java) * 수식의 괄호 검사 (괄호 쌍 검사) - 수식은 일반적으로 연산자(operator)와 피연산자(operand)로 구성되어 있고, 왼쪽에서 오른쪽 순서로 처리한다. - 수식에 사용한 연산자의 우선순위에 따라 높은 우선순위를 가진 연산자를 먼저 처리한다. - 우선순위는 괄호를 사용하여 표시하기도 한다 -> 일반괄호((,)), 중괄호({,}), 대괄호([,]) - 여러개의 괄호가 중첩된 경우 가장 안쪽의 괄호를 먼저 처리한다. ※ 지금 여기에서 해보려는 것은 수식의 괄호의 쌍을 확인하여, 수식이 올바르게 이루어져 있는가를 확인하려는 것이다. 글의 제목과 같이 '스택(Stack)' 을 활용하여 '스택(Stack)' 을 읽으면서 (1) 왼쪽 괄호를 만나면 스택에 push (2) 오른쪽 괄호를 만나면 스택을 po.. 더보기
[자료구조/java] 스택의 응용 - 역순 문자열 만들기 * 역순 문자열 만들기 "스택(Stack)의 LIFO(후입선출) 성질을 이용하여 역순 문자열을 생성할 수 있다." 더보기
[자료구조/java] 스택 (Stack) - 1차원 배열, 연결리스트 구현 [ 스택 (Stack) - 1차원 배열, 연결리스트를 이용한 구현] "접시를 쌓듯이 자료를 차곡차곡 쌓아 올린 형태의 구조를 말한다" 따라서 스택은 시간순서에 따라 자료가 쌓이고, 삭제할 때는 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO, Last-In-First-Out)의 구조를 갖는다. * push 삽입 연산 (1) top = top+1; 으로 삽입 될 위치를 확보 (2) S(top) 가 overflow 가 아니라면 top의 위치에 삽입 * pop 삭제 연산 (1) return S(top); 스택이 공백이 아니라면 top의 위치에 있는 원소 반환 (2) top = top - 1; 제일 위의 원소가 삭제되어 top이 한칸 줄었음을 표시 * 스택을 구현하기 전에 설명할 것이 있다. .. 더보기