❕Data structure

    [Data Structure] 선형(Linear) & 비선형(NonLinear) 자료구조

    자료구조의 분류는 크게 2가지로, 선형 구조(Linear)와 비선형 구조(NonLinear)가 있습니다. 선형 구조(Linear) 선형 구조란, 자료를 구성하는 원소들을 하나씩 순차적으로 나열시킨 형태입니다. 자료들간의 앞, 뒤 관계가 1:1의 관계로 배열과 리스트가 대표적이며 스택과 큐도 이에 해당됩니다. 비선형 구조(NonLinear) 비선형 구조는 앞서 알아본 선형 구조와 달리, 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태입니다. 자료들간의 앞, 뒤 관계가 1:n 또는 n:n의 관계를 나타냅니다. 트리와 그래프가 대표적이며, 계층적 구조를 나타내기에 적절합니다. 이미지 정리!

    [자료구조] 트리(Tree)란

    이번에는 자료구조 중 하나인 트리(Tree)에 대해서 정리하겠습니다. 가급적이면 쉽고 간단하게 설명할 예정이며, 더 깊고 많은 내용을 알고 싶으시다면 다른 블로그를 참고하시기 바랍니다 :) 트리(Tree)란? 트리(Tree)는 계층적인 자료를 표현하는 데 이용되는 자료구조이며, 컴퓨터의 directory를 예시로 들 수 있다. 실제 나무를 거꾸로 한 것과 같은 모양을 하고 있어 '트리'라고 부른다. 트리 관련 용어 루트 노드(root node): 부모가 없는 최상위 노드 (A) 단말 노드(leaf node): 자식이 없는 노드 (H, I, E, J, G) 크기(size): 트리에 포함된 모든 노드의 개수 깊이(depth): 루트 노드로부터의 거리 (A는 0, 그 밑에 B와 C로 나누어지니 B와 C의 깊이..

    [자료구조] 연결 리스트(Linked List)는 무엇일까?

    오늘은 자료구조 중 하나인 "연결 리스트"에 대해서 정리해보겠습니다! 자료구조, 알고리즘 공부를 꾸준히 해야 하는데 손이 안 가서 큰일이네요.. ㅠㅠ 연결 리스트(Linked List)란? 연결 리스트(Linked List)는 각 노드가 '데이터'와 '포인터'를 가지고 한 줄로 연결되어 있는 자료구조이다. 위에서 노드에는 '데이터'와 '포인터'를 가지고 있다고 하였는데 포인터는 무엇일까? 검색해본 정의로는 "포인터는 프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간 주소를 가리키는 변수를 말한다." 라고 쓰여있다. 좀 더 이해하기 쉽도록 말하면 "다음 노드의 주소값을 가지며, 그다음 노드와 연결을 담당해주는 역할"이라고 생각하면 될거같다. 참고로, 연결 리스트에는 단방향, 양방향 연결 리스트 ..

    [자료구조] 스택(Stack)과 큐(Queue)에 대해서 알아보자!

    📌 스택(Stack)이란 무엇일까? 스택(Stack)은 "쌓다"라는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조입니다. 조금 더 설명하자면, 위의 사진과 같이 데이터가 순서대로 쌓이며 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고 있습니다. 간단한 예시로는 책상에 책을 쌓아두는 것과 포개 둔 일회용 종이컵을 하나하나 꺼내서 사용하는 것으로 예시를 들 수 있을거같네요 😋 또한 스택은 정해진 방향으로만 쌓을 수 있으며, top으로 정한 곳을 통해서만 접근할 수 있습니다. 새로 삽입되는 자료는 top이 가리키는 가장 맨 위에 쌓이게 되며, 자료를 삭제할 때도 top을 통해서 삭제가 가능합니다. 그리고 스택에서는 삽입 연산을 push, 삭제 연산을 pop이라고 하며, 이러한 스택의 구조..