목록Computer Science/Data Structures (10)
개발이글스

1. 트리(Tree) : 트리(Tree)는 계층적인 자료를 표현하는데 이용되는 자료구조이며,컴퓨터의 directory 를 예시로 들 수 있다. 실제 나무를 거꾸로 한 것과 같은 모양을 하고 있어 "Tree" 라고 부른다. 아래사진은 내방식으로 정리한 그림이다. 루트노드 (root node) : 부모가 없는 최상위 노드 단말노드 (leaf node) :자식이 없는 노드 크기 (size) : 트리에 포함된 모든 노드의 개수 깊이 (depth) : 루트 노드로부터의 거리 높이 (height) : 깊이(depth) 중 최댓값, 즉 루트 노드로부터 가장 멀리있는 노드. 차수 (degree) : 각 노드의 간선 개수 2. 이진트리(Binary Tree) 트리를 구성하는 노드의 branch는 0개, 1개, 2개, 3..

1. 스택 (Stack) Stack 의 원래 뜻은 "쌓다" 라는 의미로, 데이터를 차곡차곡 쌓아올린 형태의 자료구조이다. 조금 더 설명하자면, 위의 사진과 같이 데이터가 순서대로 쌓이며 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고 있다. 예를들어 책상에 책을 쌓아두면 위에서부터 순서대로 꺼내고, 종이컵을 쌓아놓고 위에서부터 하나씩 꺼내는 것과 같은 구조이다. 스택은 정해진 방향으로만 쌓을 수 있으며, top 으로 정한곳을 통해서만 접근할 수 있다. 새로 삽입되는 자료는 top 이 가리키는 가장 맨 위에 쌓이게 되며, 자료를 삭제할 때도 top을 통해 삭제가 가능하다. 스택에서는 삽입 연산을 push, 삭제 연산을 pop 이라고 하며, 이러한 스택의 구조를 "후입선출" 구조라고 한다. 줄..

1. 배열 Array 배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조이다. 배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있다. 배열의 특징 인덱스를 사용하여 값에 바로 접근할 수 있다. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다. 배열의 크기는 선언할 때 지정 할 수 있으며, 한번 선언하면 크기를 늘리거나 줄일 수 없다. 구조가 간단하므로 코테에서 많이 쓰인다. 2. 리스트 List 리스트는 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조이다. (노드: 컴퓨터 과학에서 값, 포인터를 쌍으로 갖는 기초단위를 부르는 말이다.) 리스트의 특징 인..

자료구조와 알고리즘을 공부하기에 앞서 자료구조와 알고리즘이 무엇인지, 둘의 차이는 무엇인지 알아보자 1. 자료구조(Data Structure) 먼저, 자료구조는 말 그대로 자료(data)를 담는 구조이다. 여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 것이다. 데이터를 효율적으로 다룰 수 있는 여러 방법들을 모아 "자료구조" 라고 한다. 자료구조는 특정한 상황에 놓인 문제를 해결하는데 특화 되어있다. 많은 자료구조를 알아두면 알고리즘테스트와 같은 상황에서 적합한 자료구조를 이용해서 빠르게 문제해결이 가능해진다. ==> 가장많이 쓰이는 자료구조 : Stack, Queue, Tree, Graph -> (스택, 큐, 트리, 그래프) 2. 알고리즘 (Algorithm) 어떤 문제를 해결하기 위해 사용되..