본문 바로가기

자료구조

[자료구조/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이 한칸 줄었음을 표시 * 스택을 구현하기 전에 설명할 것이 있다. .. 더보기
[자료구조/java] 다항식의 연결 자료구조 표현 * 다항식의 연결 자료구조 표현 - 단순 연결 리스트를 이용하여 다항식 표현하기 - 계수, 지수, 다음노드를 가리키는 참조 노드 세개로 구성 [다항식의 단순 연결 리스트 표현] 단순 연결 리스트를 이용하여 다항식을 표현 하였다. 단순 연결 리스트는 data, next 두개의 멤버변수로만 구성했지만 다항식을 표현한 단순연결리스트는 계수(coef)와 지수(expo), 다음노드를 가리키는 next 노드로 구성하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ListNode.java package polynomial; public class ListNode { int coef; int expo.. 더보기
[자료구조/java] 이중 연결 리스트 (Doubly Linked List) * 이중 연결 리스트 (Doubly Linked List) - 양쪽 방향으로 순회할 수 있도록 연결한 리스트 원형 연결 리스트에서 현재 노드의 바로 이전 노드에 접근하려면 전체 리스트를 한바퀴 순회해야 하는 문제를 해결 [ 삽입연산 ] (1) 삽입할 노드를 가져온다. (2) 새 노드의 데이터 필드에 값을 저장한다. (3) 새 노드의 왼쪽 노드의 오른쪽 링크(rlink)를 새 노드의 오른쪽 링크(rlink)에 저장한다. (4) 그리고 왼쪽 노드의 오른쪽 링크(rlink)에 새 노드를 주소를 저장한다. (5) 새 노드의 오른쪽 노드의 왼쪽 링크(llink)를 새 노드의 왼쪽 링크(llink)에 자장한다. (6) 그리고 오른쪽 노드의 왼쪽 링크(llink)에 새 노드의 주소를 저장한다. [ 삭제연산 ] (1).. 더보기