반응형

자료구조학습 7

[9] [알고리즘 - 자료구조] 비선형구조란?

비선형구조(NonLinear Structure)란? 비순차적인 성질을 지닌 자료입니다. 즉, 일렬로 나열하기 힘들고 자료의 순서가 불규칙해서 연결 관계가 복잡한 구조입니다. 1:다, 다:다 등등 여러 형태를 지녔을 때 사용됩니다. 일상에서 쉽게 접할 수 있는 지하철 노선도, 사람들 간의 관계, 조직도 등이 비선형 구조의 대표적인 예입니다. 선형구조와 비교를 하면 데이터가 연속적으로 연결된 모양과는 다르게 불규칙적이고 예상하기 힘든 구조임을 알 수 있습니다. 비선형구조로는 트리, 그래프가 있습니다. [10] [알고리즘 - 자료구조] 트리(tree)란? (비선형구조) javascript 구현 트리(tree)란? 나무가 하나의 뿌리에서 줄기가 나와 가지로 나누어지는 것처럼 나무를 거꾸로 뒤집어 놓은 형태로, ..

[7] [알고리즘 - 자료구조] 큐(Queue)란? (선형구조) javascript 구현

큐(Queue) 란? 가장 먼저 리스트에 삽입된 원소가 가장 먼저 삭제되는 구조입니다. FIFO(First In First Out) 특징을 가지고 있습니다. 가장 쉬운 예로 일상생활에서 쉽지 볼 수 있는 예입니다. 가장 먼저 줄은 선 사람이 가장 먼저 타는, 일반적인 줄을 서는 구조입니다. 데이터는 이렇게 이동을 하겠네요! Javascript로 구현을 해볼게요. in(item) { this.#item.push(item); } out() { return this.#item.shift(); // 0번째 제거 } 내장 객체를 사용하여 배열로 아주 간단히 구현이 가능합니다. class Queue { #items; constructor() { this.#items = []; } in(data) { this.#it..

[6] [알고리즘 - 자료구조] 스택(Stack)이란? (선형구조) javascript 구현

스택이란 데이터의 삽입과 삭제가 한쪽 방향에서만 일어나는 구조 때문에, 가장 나중에 삽입된 데이터가 가장 먼저 삭제되는 후입 선출(LIFO : Last-In First-Out) 특징이 있습니다. 왜 거꾸로 아래에서 들어가고 아래에서 나오게 표현을 했냐고요? 저희가 일반적으로 배열을 생각하면 [0, 1, 2, 3, 4..] 이런 모양을 떠올리게 됩니다. JSON 포맷이나 정렬을 하게 되면 아래와 같은 모양으로 자주 접하게 될 것입니다. 그럼 이제 스택을 Javascript로 구현해볼게요. class Stack { #items; #count; constructor() { this.#items = []; this.#count = 0; } in(data) { this.#items[this.#count] = da..

[5] [알고리즘 - 자료구조] 연결리스트(Linked List)란? (선형구조) javascript 구현

연결리스트 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조입니다. 좀 더 쉽게 알아보겠습니다. 데이터와 다음 순서의 주소 값을 가지고 하나의 덩어리를 '노드'라고 표현합니다.표현합니다. 이런 모양이 되겠네요. 이런 식으로 데이터가 연결되어 있는 것이 연결 리스트입니다. 가장 처음의 노드는 Head라고 부르고, 마지막 노드를 Tail 이라고도 부른다고 합니다. 만약 이러한 연결 리스트에서 데이터를 삭제하고자 한다면 이처럼 다음 주소 값을 변경해주고 하나의 노드만 삭제를 하면 됩니다. 배열에 비해 빠른 속도의 처리가 가능합니다. 따라서 삽입, 삭제 속도가 빠릅니다. 하지만 빠른 탐색이 가능했던 배열에 비해 연결 리스트는 탐색이 느리다는 단점이 있습니다. 4번째..

[3] [알고리즘 - 자료구조] 선형구조란?

선형구조 데이터가 연속적으로 연결되어 있는 모양인 자료구조입니다. 선형 구조(linear structure)의 linear는 ‘선으로 된’, ‘직선 모양의’라는 뜻입니다. 한 칸에 하나의 데이터만 들어가고 그 데이터들이 연속적으로 연결되어 있는 모양을 뜻합니다. 일상생활에서는 지하철 노선도를 예로 들 수 있겠네요. 선형 구조와는 다르게 비선형 구조는 비순차적인 성질을 지닌 자료들을 표현하는데 적합한 구조를 의미합니다. 그럼 선형구조에서 순차 리스트를 먼저 알아보러 갑시다. [4] [알고리즘 - 자료구조] 순차리스트 란? (선형구조) javascript 구현 순차 리스트란? 리스트, 순차 리스트, 배열 이렇게 표현이 됩니다. 동일한 성격을 가진 자료들이 연속된 공간에 저장 되는 선형 자료구조입니다. 음식이..

[2] [알고리즘 - 자료구조] 단순구조란? 정수, 실수, 문자, 문자열

단순구조란? 정수, 실수, 문자, 문자열 등 자료의 형태를 말합니다. 정수란? 양의 정수, 0, 음의 정수를 통틀어서 부르는 말입니다. 또는 자연수와 0, 그리고 자연수에 -기호를 붙인 수를 함께 부르는 명칭입니다. * 함께 알아두면 좋은 개념 * 자연수 1부터 시작하여 1씩 커지는 수. (1,2,3,4,5 ...) 실수란? 유리수와 무리수를 통틀어 실수라 한다. * 함께 알아두면 좋은 개념 * 유리수 정수의 비로 나타낼 수 있는 수. 정수와 분수가 있으며, 소수로 나타내면 유한 소수나 순환 소수가 된다. 무리수 무리수는 간단한 분수로 고칠 수 없는 수. 따라서 소수점 아래의 수가 반복되지 않고 무한히 계속되는 소수. 유리수가 아닌 수를 무리수라 하고, 소수로 나타내면 순환하지 않는 무한소수가 됨. 문자..

[1] [알고리즘 - 자료구조] 자료구조란? 자료구조 전체 리스트 분류

자료구조란? 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키기 위한 학문, 방법, 자료의 조직, 관리 또는 저장을 의미합니다. 서점에 책들이 만약 땅바닥에 널브러져 있고, 여기저기 구석에 정리되어있지 않은 채로 있다면, 찾기 쉬울까요~? 이처럼, 컴퓨터에서도 자료를 효율적으로 보관하고 정리하는 기술이 필요합니다. 이때 다양한 자료구조 기법을 사용합니다. 그렇다면 알고리즘은 무엇이기에 알고리즘 - 자료구조 연관 지어져 있을까요.? 알고리즘이란, 어떤 문제를 해결하기 위한 절차 또는 방법입니다. 즉, 어떤 문제를 해결 (가장 빠르게 또는 효율적으로) 하기 위해서 자료구조의 기법을 활용하여 효율적으로 데이터를 나열하고 문제를 해결해 나가는 것을 의미합니다. 다양한 자료구조의 기법을 알고 있다면 다양한 ..

반응형