본문 바로가기

java

[자료구조/java] 이진 트리 (Binary Tree) - 순차 자료구조 방식, 연결 자료구조 방식 * 이진 트리 (Binary Tree) 구현 - 순차 자료구조 방식 - 이진트리를 배열로 표현하는 방법은 높이가 h인 포화 이진 트리의 노드번호를 배열의 인덱스로 사용하여 1차원 배열로 표현 - 1차원 배열에서 인덱스 계산을 간단히 하기 위해서 인덱스 0번은 실제로 사용하지 않고 비워두고 항상 인덱스 1번에 루트를 저장 이진 트리를 표현한 1차원 배열에서의 인덱스 관계를 나타낸 표이다. * 이진 트리 (Binary Tree) 구현 - 연결 자료구조 방식 - 배열을 이용한 순차 자료구조 방식은 쉽게 만들 수 있고, 인덱스 규칙에 따라 노드를 찾는 것이 쉽다. - 하지만 메모리 사용에 있어서 완전 이진 트리의 경우 최적의 공간 사용이 되지만, 편향 이진 트리의 경우 많은 공간이 낭비된다. - 메모리 문제와 .. 더보기
[자료구조/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+ 연산자를 피연산자 뒤에 표기하는 방법 [중위 표기법의 전위 표기법 변환].. 더보기