일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 프로그래머스
- 운영체제
- directx
- 다이나믹프로그래밍
- OS
- 멀티프로세서
- I/O장치
- 컨디션 변수
- 디자인패턴
- DirectX12
- 렌더링 파이프라인
- 파일시스템 구현
- 쓰레드
- 영속성
- 동적계획법
- 백준
- DirectX 12
- 멀티쓰레드
- 알고리즘
- 락
- 그리디알고리즘
- 병행성 관련 오류
- 다이나믹 프로그래밍
- 병행성
- Direct12
- 스케줄링
- 자료구조
- 타입 객체
- codility
- 그리디 알고리즘
- Today
- Total
목록자료구조 (6)
기록공간

정렬은 순서가 없는 사물들을 순서대로 재배열하는 것을 뜻한다. 순서에는 오름차순(ascending order)과 내림차순(descending order)이 있다. 다음 그림은 순서대로 오름차순과 내림차순의 예시를 보여준다. 예를 들면, 책은 '제목'이나 '저자명', 그리고 '발간 연도' 등을 기준으로 오름차순이나 내림차순으로 정렬할 수 있다. 인터넷 쇼핑몰에서는 물건들을 '판매 인기순'이나, '가격 낮은 순', '상품 평순' 등으로 정렬할 수 있고, 엑셀 프로그램도 성적처리를 하는 경우 '학번', '성적', '실습 점수' 등의 기준으로 정렬할 수 있다. 정렬은 자료 탐색에서 매우 중요하다. 예를 들면, 사전에서 우리가 단어를 쉽게 찾을 수 있는 것은 단어들이 알파벳순으로 정렬되어 있기 때문이다. 만약 사..

그래프란? 그래프(Graph)는 요소들이 서로 복잡하게 연결되어 있는 관계를 표현하는 자료구조이다. 예를 들어, 지하철 노선도는 많은 역들이 어떻게 연결되어 있는지를 알려주며, SNS의 인맥 지도는 사람들의 복잡한 친구 관계를 표현한다. 그래프로 표시된 지도를 이용해 어떤 도시에서 다른 도시로 갈 수 있는 가장 가까운 경로를 찾을 수도 있다. 그래프는 선형 자료구조들이나 트리보다 더 일반화 된 자료구조를 제공하고 많은 분야에서 널리 사용하고 있다. 이와 같은 예들은 공통적으로 다양한 객체들이 서로 연결되어 있는 구조를 갖는다. 그래프는 이런 구조를 표현할 수 있는 훌륭한 논리적인 도구이다. 그래프의 역사 그래프는 수학자 오일러(Euler)에 의해 처음 창안되었다. 오일러는 위 그림과 같은 지형에서 "모든..

트리란? 트리(Tree)는 계층 구조(Hierarchical Structure)로 자료를 저장하는 자료구조이다. 여기서 말하는 계층 구조란 트리를 구성하는 노드가 부모-자식(Parent-Child) 관계라는 의미이다. 즉 특정 부모 노드 하나에 여러 개의 자식 노드들이 연결되는 구조를 말한다. 이러한 구조로 노드들이 연결된 모습이 마치 마치 나무와 같아 트리라는 이름이 붙여졌다. 그래서 앞으로 살펴 볼 용어 중 나무의 부분에 대한 명칭을 가져온 것이 있다. 예를 들어, 컴퓨터의 폴더 구조나 가족의 가계도, 직장의 조직도 등과 같이 계층적인 관계를 가진 자료를 표현하고 싶은 경우 선형 자료구조만으로 충분하지 않다. 트리는 이러한 계층적인 자료를 표현하는데 이용되는 자료구조이다. 트리의 용어들 트리와 관련된..

큐란? 큐(Queue)는 사전적인 정의로 '긴 열', '대기열'를 뜻한다. 길게 늘어져 있는 줄을 생각하면 편하다. 큐(Queue)는 일상생활에서도 자주 접하게 된다. 예를 들면 극장에서 표를 사려고 길게 늘어진 사람들의 줄, 또는 도로 위에서 신호를 기다리며 길게 늘어선 차들 등이 있다. 이러한 대기열에는 한 가지 중요한 특징을 가지고 있다. 그것은 바로 '선입선출(First-In First-Out : FIFO)'이다. 새치기라는 예외적인 상황을 제외하고 정상적인 경우라면 언제나 먼저 도착한 사람이 먼저 나가게된다. 자료구조에 사용되는 큐는 이러한 줄 서기의 특징을 그대로 가지고 있다. 큐는 추가되는 자료를 차례대로 저장하여, 저장된 순서에 의해 데이터가 나오는 자료구조이다. 먼저 저장된 데이터가 나중..

스택이란? 스택(Stack)은 한글로 번역하면 '쌓다, '더미'이다. 말그대로 데이터를 차례차례 쌓아 놓은 형태의 구조를 뜻한다. 예를 들어, 밑이 막힌 상자에 물건을 채워 넣는다고 생각해보자. 밑이 막혀있으니 위로만 물건을 집어 넣고 뺄 수 있을 것이다. 그렇기 때문에 가장 처음에 넣은 물건은 가장 나중에 뺄 수 있을 것이다. 마찬가지로 스택 구조도 이와 같은 특징을 가진다. 이러한 구조를 '후입선출(Last-In First-Out : LIFO)'이라고 한다. 스택은 Push()를 이용해 데이터를 차곡차곡 쌓고 Pop()을 이용하여 가장 위에 있는(Top) 데이터를 꺼낸다. 또한 편의에 따라 Peek()을 이용하여 Top에 있는 데이터를 미리 볼 수도 있다. 스택의 활용 스택은 정말 많은 곳에서 사용된..

리스트란? 리스트(List) 또는 선형 리스트(Linear list)는 자료를 정리하는 방법 중 하나이다. 우리는 일상 생활에서도 많은 리스트를 사용하고 있다. 예를 들어, 오늘 해야 할 일이나 슈퍼에서 사야할 물건들을 리스트로 정리한다. 리스트에는 보통 항목들이 차례대로 정리되어 있다. 리스트의 항목들은 순서 또는 위치를 가진다. 리스트는 기호로 다음과 같이 표현한다. L = (item(0), item(1), item(2), ..., item(n-1)) 다음은 대표적인 리스트의 예이다. 사고 싶은 물건들 : (스마트폰, 자전거, 가방, ..., 신발) 이번 주에 해야 할 일들 : (자료구조 숙제, 아르바이트, 집 청소, ..., 빨래) 가고 싶은 여행지들 : (파리, 지리산, 마라도, ..., 안면도)..