본문 바로가기

자료구조

[자료구조/java] 트리 (Tree) * 트리 (Tree) "비선형 자료구조 중에서 자료들 간에 계층관계를 가진 계층형 자료구조(Hierarchical Data Structure)이다." - 트리를 구성하는 원소(자료)를 노드라고 하고 노드를 연결하는 선을 간선(edge)이라 한다.- 트리의 시작 노드를 루트 노드(Root)라 하고 레벨(level) 0이 된다.- 각 노드는 자식노드 수만큼의 서브트리(subtree)를 갖는다.- 한 노드가 가지는 서브 트리의 수, 즉 자식노드의 수를 그 노드의 차수(degree)라 한다.- 노드의 차수 중에서 가장 큰 차수는 트리의 차수가 된다. 트리 A의 전체 차수는 3이된다.- 자식이 없는 노드를 리프 노드(Leaf Node) 또는 단말 노드라고 한다.- 조상은 자기와 연결된 선을 따라 위로 올라가면서 .. 더보기
[자료구조/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] 큐 (Queue) - 연결큐 연결 자료구조 방식 구현 * 큐 (Queue) "스택과 달리 한쪽 끝에서는 삽입 작업이, 반대쪽 끝에서는 삭제 작업이 이루어진다." 따라서, 삽입된 순서대로 삭제되는 선입선출(FIFO, First-In-First-Out)의 구조로 운영된다. 줄을 서있다가 순서대로 앞에서부터 입장하는 줄서기도 큐의 선입선출 구조의 예가 될 수 있다. 큐는 한쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행하도록 하고, 가장 먼저 큐에 들어온 첫번째 원소이며, 다른 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행하도록 제한하고, 큐에 가장 늦게 들어온 마지막 원소이다. 큐는 다음과 같이 다섯가지의 기능을 구현해야 한다. (1) 공백 큐 생성 (createQueue) - 초기 상태의 공백큐는 저장된 원소가 없으므로 front와 rear를 -.. 더보기
[자료구조/java] 큐 (Queue) - 선형큐, 원형큐 순차 자료구조 방식 구현 * 큐 (Queue) "스택과 달리 한쪽 끝에서는 삽입 작업이, 반대쪽 끝에서는 삭제 작업이 이루어진다." 따라서, 삽입된 순서대로 삭제되는 선입선출(FIFO, First-In-First-Out)의 구조로 운영된다. 줄을 서있다가 순서대로 앞에서부터 입장하는 줄서기도 큐의 선입선출 구조의 예가 될 수 있다. 큐는 한쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행하도록 하고, 가장 먼저 큐에 들어온 첫번째 원소이며, 다른 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행하도록 제한하고, 큐에 가장 늦게 들어온 마지막 원소이다. 큐는 다음과 같이 다섯가지의 기능을 구현해야 한다. (1) 공백 큐 생성 (createQueue) - 초기 상태의 공백큐는 저장된 원소가 없으므로 front와 rear를 -.. 더보기
[자료구조/java] 수식의 표기법 - Stack 사용 * 수식의 표기법 - 전위, 후위, 중위 수식의 표기법은 연산자의 위치에 따라 전위, 후위, 중위 표기법으로 나누어지며, 각각의 표기법은 서로 다른 표기법으로 변환 시킬 수 있다. 컴퓨터 내부에서 수식을 처리하기에 가장 효율적인 방법은 후위 표기법이다. 그래서 컴퓨터 내부에서 효율적인 처리를 위해 스택을 사용하여 입력된 수식을 후위 표기법으로 변환하게 된다. (1) 전위 표기법 (Prefix Notation) +AB 연산자를 앞에 표기하고 그 다음에 피연산자를 표기하는 방법 (2) 중위 표기법 (Infix Notation) A+B 연산자를 피연산자의 가운데에 표기하는 방법 (3) 후위 표기법 (Postfix Notation) AB+ 연산자를 피연산자 뒤에 표기하는 방법 [중위 표기법의 전위 표기법 변환].. 더보기