728x90

CS(컴퓨터 사이언스)/자료구조 4

[자료구조] 그래프와 트리(Graph, Tree)

트리와 그래프 그래프(Graph) 그래프란 그래프는 노드(하나의 점)와 노드 간을 연결하는 간선으로 구성된 자료 구조이다. 이를 통해 연결된 노드 간의 관계를 표현할 수 있는 자료구조이다. 그래프의 특징 - 그래프는 순환 혹은 비순환 구조를 이룬다 - 그래프는 방향이 있는 그래프와 방향이 없는 그래프가 있다. - 루트 노드의 개념이 없다 / 부모-자식 관계라는 개념이 없다. - 2개 이상의 경로가 가능하다.(무방향, 방향, 양방향 가능) - 그래프는 네트워크 모델이다. 트리(Tree) 트리란 트리는 그래프와 같이 노드와 노드간을 연결하는 간선으로 구성된 자료구조이다. 그러나 트리는 그래프 중에서도 특수한 케이스에 해당하는 자료구조이다. 트리는 두 개의 노드 사이에 반드시 1개의 경로만을 가지며 사이클이 ..

[자료구조] 스택과 큐, 데크(Stack, Queue, Deque)

스택(Stack) 스택이란 스택은 쉽게 생각하면 박스에 차곡차곡 물건을 정리하는 형태이다. 먼저 들어간 것이 밑에 위치하기 때문에 나중에 나오게 되고 나중에 들어간 것이 위에 위치하기 때문에 먼저 나오는 형태의 자료구조이다. 그렇기 때문에 스택의 모든 연산은 스택의 최상단에서 일어난다. ※LIFO(Last In First Out, 후입선출) 그럼 이렇게 처음 들어간 값을 쉽게 빼서 쓰지도 못하는 불편한 형태의 자료구조를 쓰는 이유는 무엇이며 어디에 쓰이는가 스택은 주로 컴퓨터 연산에 사용하는 자료구조로 연산의 우선 순위에 따라 쉽게 연산할 수 있도록 도와준다. 숫자와 연산자가 들어오면 연산자의 우선 순위에 따라 스택에 쌓아 두거나 스택의 위에서 나오면서 연산이 이루어 지는 것이다. 스택 관련 용어 - T..

[자료구조] 배열과 리스트(Array & List)

배열 배열이란 연관된 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 선형 자료구조로 배열을 이용하면 하나의 변수에 여러 정보를 담을 수 있으며, 반복문과 결합하여 효율적으로 데이터를 처리할 수 있다. 주로 데이터의 개수가 정해져 있는 경우나 데이터의 수정이 적은 경우, 혹은 데이터의 검색이 빈번한 경우에 사용하는 선형 자료구조형이다. 배열의 특징으로는 배열안의 데이터들은 같은 자료형으로 나열되있다는 것, 그리고 데이터가 연속된 메모리 공간에 순차적으로 저장 된다는 것, 그래서 배열의 논리적 순서(인덱스)와 원소값의 물리적인 순서(메모리 주소) 두가지가 동일하다는 것 등을 꼽을 수 있다. 배열에서의 시간 복잡도 삽입/삭제 -배열의 맨 앞에 삽입/삭제: O(n) -배열의 맨 뒤에 삽입/삭제: O(1) -배..

[자료구조] 자료구조의 정의

자료구조 자료구조의 정의 자료구조는 문제 해결을 위해 데이터를 조직화하고 저장하는 것과 이를 구현하는 데 필요한 알고리즘에 대해 논하는 기초이론이다. 자료구조는 CS(컴퓨터 사이언스)에서 알고리즘과 함께 가장 중요한 기초이론이다. 알고리즘에서 효과적으로 접근, 변경, 처리가 가능하도록 만들어진 데이터 체계이기 때문이다. 자료구조는 데이터를 효율적으로 사용하기 위한 것으로 연산의 다양성 및 효율성 등을 제고하여 사칙연산 외에도 읽기, 삽입, 삭제, 비교, 교환 등 다양한 연산의 사용을 고려해야 한다. 추상 자료형과 자료구조 자료에 대해 처리를 어떻게 할지 자료와 동작을 함께 고려하면서, 컴퓨터에 효과적으로 표혀느 저장, 처리하는 기술 그리고 캡슐화 하는 것을 추상 자료형이라고 한다. 추상 자료형은 문제를 ..

728x90