본문 바로가기

프로그래밍/자료구조5

[자료구조] 이진트리(Binary Tree) 이진트리(Binary Tree)란? 한 노드가 최대 두 개의 자식 노드를 가지는 트리를 말한다. 첫 번째 노드를 부모 노드라고 하며 자식 노드는 왼쪽(left)과 오른쪽(right)으로 불린다. 방향 간선(directed edge) : 부모에서 자식으로 가는 경로(그림의 화살표 부분)루트 노드(root node) : 부모가 없는 노드. 트리는 하나의 루트 노드만을 가진다.단말 노드(leaf node) : 자식이 없는 노드깊이(depth) : 루트 노드에서 자신까지 가는 경로의 길이레벨(level) : 트리의 특정 깊이를 가지는 노드의 집합. 루트 노드의 깊이는 0이다.높이(height) : 루트 노드에서 가장 깊이 있는 노드까지 가는 경로의 길이. 루트 노드만 있는 트리의 높이는 0이다.형제(siblin.. 2017. 4. 13.
[자료구조] 스택(Stack) 스택(Stack)이란? 후입선출(後入先出, Last In First Out; LIFO)의 자료구조로 새로 들어오는 데이터의 위치가저장소의 끝 부분(Top혹은 Top pointer라고 한다)이고, 내보내는 데이터 역시 저장소의 끄트머리에서 나간다.입력은 push, 출력은 pop이다. peek는 Top의 위치에 있는 데이터를 확인하는 것을 말한다. STL의 Stack [소스] [결과] 2017. 3. 13.
[자료구조] 큐(Queue) / 덱(Deque) 1. 큐(Queue)란?먼저 넣은 데이터가 먼저 나오는 선입선출 (First In First Out) 방식의 자료구조. 후입선출(LIFO) 방식의 스택(Stack)과 반대되는 개념이다. 자료를 넣는 것을 '밀어넣는다' 하여 푸시(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 한다. 2. STL의 Queue/Priority Queue1) Queue[소스][결과] 2) Priority Queue : 기존 큐에 정렬 기능이 추가된 자료구조[소스][결과] 3. 덱(Deque)란?Double-ended Queue의 약자로 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조이다. 큐와 스택을 합친 형태로 생각할 수 있다. 4. STL의 Deque[소스][결과] 2017. 3. 13.
[자료구조] 연결리스트 (Linked List) 연결리스트(Linked List)란?연결리스트 또는 링크드리스트(linked list)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조이다. 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당한다. 단일 연결리스트, 이중 연결리스트, 원형리스트 등이 있다. 1) 특징- 크기가 고정되어 있지 않기 때문에 데이터의 추가/삭제가 용이하다.- 빈 엘리먼트는 허용하지 않지만(값에 Null을 넣을 수는 있음), 중복 엘리먼트는 허용한다.- 열거(Enumerate)하여 값을 찾기 때문에 특정 데이터 접근이 어려운 단점이 있다(그러나 배열에서는 자료마다 번호가 있어서 특정한 자료를 불러내기가 편리하다).*탐색 또는 정렬을 자주 하면 배열을, 추가/삭제가 많으면 연결 리.. 2017. 3. 13.