안녕하세요!
주말 잘 보내셨나요?
내일은 또 월요일이네요ㅠㅠ
남은 시간도 격하게 쉬기 전에 중요한 것!
자료구조, 알고리즘!
실과 바늘과 같은 존재랍니다.
컴퓨터 직종에서는 꼭 알아야 한다는!!!
자료구조(Data Structure)
사전적 의미
: 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다.
좀 더 쉽게 설명하자면?
: 데이터를 구조적으로 표현하는 방식
: 자료를 효율적으로 관리하고 구조화 시키기 위한 방법론
입니다.
자료구조도 분류가 됩니다.
1. 생김새에 따라서
- 원시구조 : 정수, 실수, 문자
- 선형구조 : 배열, 연결리스트, 스택, 큐
- 비 선형구조 : 트리, 그래프
2. 실체화에 따라서
- 물리적 구조 : 정수, 실수, 문자, 배열, 연결리스트
- 추상적 구조 : 스택, 큐, 트리, 연결리스트
선형구조
1. 배열(Array)
: 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다.
배열은 쉽게 초등학교 때, 신발장이라고 생각하시면 됩니다.
신발장 크기와 위치가 정해져있죠?
배열도 크기가 정해져 있습니다.
- 장점 : 크기가 정해져 있어서 빠르다.
- 단점 : 삽입, 삭제 불가능(크기가 정해져 있어서 그렇습니다.)
아무래도 불편한 점이 있죠?
그래서 '연결 리스트' 가 있습니다.
2. 연결 리스트(Linked List)
: 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조입니다.
- 장점 : 1. 한 줄로 연결되어 있다 보니 잘못된 것이 있으면 되돌아 와 수정 가능!
2. 추가된 내용이 있다면 삽입 가능!
- 단점 : 속도가 느리다.
3. 스택(Stack)
: 제한적으로 접근할 수 있는 나열 구조입니다.
쉽게 말하면?
: 어떤 물건들이 쌓여있는 형태를 말합니다.
- Data 넣는 것 : PUSH
- Data 꺼내는 것 : POP
꺼내지는 자료는 가장 최근에 보관한 자료부터 나오게 됩니다.
이처럼 나중에 넣은 값이 먼저 나오는 것을 LIFO 구조라고 합니다.
ex) 뒤로 가기
4. 큐(Queue)
: 먼저 들어온 데이터가 먼저 처리된다.
이와 같은 구조를 FIFO(First-In First-Out)
Queue
: 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 됩니다.
5. 덱(Double-Ended Queue)
: 스택 + 큐
양쪽 끝에서 삽입, 삭제가 모두 가능한 자료구조
비 선형구조
1. 트리(Tree)
: 부모 노드(The Root Node), 자식 노드(A Child Node)가 있는 형태의 자료구조
부모 노드 밑에 여러 자식 노드가 연결되고, 자식 노드 각각에 다시 자식 노드가 연결되는 재귀적 형태입니다.
1) 이진 트리(Binary Tree)
2) 이진 탐색 트리(Binary Search Tree, BST)
2. 그래프(Graph)
: 연결되어 있는 원소간의 관계를 표현하는 자료구조
서로 간에(대규모) 관계를 파악(표현)하는데 쓰입니다.
트리 vs 그래프 차이점?
: '부모 노드(The Root Node), 자식 노드(A Child Node)의 유무' 입니다.
제가 아는 수준이 이렇다보니 많이 부족해요ㅠㅠㅠㅠㅠ
다시 한번 말씀드리지만, 저도 시작단계입니다.
보기 불편하시거나 도움이 되지 않는다면 말씀해주세요ㅠㅠ
열심히 겅부해볼께요ㅎㅎㅎㅎㅎㅎ
남은 시간 푹 쉬세요!
내일을 위해서~~~~
뿅!
'개애발 > 컴퓨터' 카테고리의 다른 글
운영체제 & 프로세스 (0) | 2017.01.14 |
---|---|
2진수가 뭐지? 2의 보수가 뭐야? (0) | 2017.01.13 |
비 전공자가 컴퓨터를 알고싶으면 역사부터? (0) | 2017.01.12 |
Git 이 뭔지 궁금해? 궁금해! (0) | 2017.01.11 |