자료구조

자료구조

[JAVA] Tree 이진트리 구현

이진트리란 자식 노드가 최대 2개인 노드로 구성된 트리이다. -> 이 말을 해석 해보자면 부모 노드로 부터 자식노드가 0 ~2개 사이로 존재 할 수 있다. 더 자세히 그림으로 살펴보자. left(10) root(5) right(null) left(10) root(5) right(20) left(null) root(5) right(20) left(null) root(5) right(null) 이런 구조를 가질 수 있다. 그럼 위 그림을 통해 Node 구조를 만들어 보자. 1. 한개의 노드를 봤을때 Value 값이 필요함 2. 노드에서 는 left 노드 , right 노드 포함할 수도 있고 없을 수도 있다. private class Node { private Node left; private Node rig..

자료구조

[JAVA] Queue 란 ? Queue 구현해보기

Queue 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다 queue 의 기본적인 구조는 위와 같지만 종류는 크게 2가지로 나뉜다. 1. 선형 Queue 일반 line 처럼 처음과 끝이 이어져 있지 않기 때문에 데이터를 꺼낼때마다 정렬을 하거나 , 배열의 크기를 증가시켜야 하기 때문에 효율적이지 않다. 구현class public class Queue { private int[] queueList; private int pollPointer; private int addPointer; private int size; public Queue(int size) { this.queueList = new int[size]; this.size = si..

자료구조

[Java]Stack 이란? , stack 구현해보기

스택(Stack) 한 쪽 에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조 구현 class public class Stack { private final int [] stackList; private final int stackSize; private int stackPointer; public Stack(int stackSize) { this.stackList = new int[stackSize]; this.stackPointer = -1; this.stackSize = stackSize; } public void push(int data){ if(stackSize-1 ==stackPointer){ System.out.println("더 이상 추가할 수 없음"..

자료구조

[Java] LinkedList 란? (LinkedList 구현해보기)

LinkedList 란 데이터를 저장하는 각 노드가 다음 노드의 주소를 알고 있다고 보면 간단히 이해할 수 있다. 그림상으로는 다음과 같다. 다음과 같은 구조를 가질 때 장점이 존재한다 추가 ,삭제에 용이하다(LinkedList는 이전 노드와 다음 노드를 참조하는 상태만 변경하면 됨 시작 복잡도 O(1)) 하지만 단점도 존재한다. LinkedList는 검색 시 모든 요소를 거쳐서 탐색해야 돼서 느리다 ( 시작 복잡도O(N) ) 구현 Class LinkedList 에서 추가 , 삭제 , 값 확인하는 로직만 구현하였음. public class LinkedList { private Node head; private Node tail; private int size = 0; class Node { // data..

jay Joon
'자료구조' 카테고리의 글 목록