Front-end/자료구조 & 알고리즘 3

연결 리스트란?

연결 리스트연결 리스트는 연속된 메모리 공간에 저장하지 않고, 각 데이터가 다음 데이터의 위치를 가리키는 방식으로 구성된 선형 자료 구조다. 각 데이터 단위를 노드라고 하며, 노드는 데이터를 저장하고 다음 노드를 가리키는 참조(주소)를 포함한다.배열은 인덱스를 사용해 원소에 쉽게 접근할 수 있지만, 원소를 추가하거나 삭제하려면 연속된 메모리 공간을 확보하고 원소들을 이동시켜야 하므로 시간이 걸리는 반면, 자료의 양이 정해져 있지 않거나 추가 및 삭제가 빈번할 때는 연결 리스트가 더 적합하다. 연결 리스트 앞에는 Head가 있는데 Head는 연결 리스트의 첫 번째 노드를 가리키며, 연결 리스트에 접근하기 위한 시작점 역할을 한다.단일 연결 리스트의 구조- 각 노드는 값과 다음 노드의 주소(참조)를 저장한다..

자료 구조란?

자료구조는 데이터를 효율적으로 저장하고 관리하는 방법이며, 데이터를 표현하고 조작하는 (삽입, 수정, 삭제, 검색, 정렬, 병합 및 순회)데 필요한 것이다. 추상 자료형은 데이터가 실제로 어떻게 구현되는지 숨겨서 사용자가 데이터의 논리적인 구조와 기능에만 집중할 수 있기에 정보 은닉과 모듈화를 통해 코드의 재사용성과 유지 보수성을 높여준다.  자료구조의 분류선형 자료 구조: 데이터를 일렬로 나열한 자료 구조이다. 배열, 연결리스트, 스택, 큐가 있다.비선형 자료구조: 데이터를 순서에 상관없이 계층 구조나 그래프 구조로 연결하는 자료 구조이다. 트리 그래프가 있다. 변수는 프로그래밍의 기본적인 구성 요소로, 데이터를 저장하고 참조하기 위해 사용하는 이름이다. 변수는 컴퓨터 메모리의 특정 위치를 가리키며, ..

빅오 표기법 (Big O Notation)

빅오 표기법은 알고리즘의 시간 복잡도와 공간 복잡도를 표현하는 데 사용되는 수학적 표기법이다. 이 표기법은 입력 데이터 크기(n)가 커질 때 알고리즘 성능이 어떻게 변하는지를 나타내기 위해 사용된다.시간 복잡도시간 복잡도는 알고리즘이 주어진 입력을 처리하는 데 걸리는 시간의 상한선을 나타낸다.시간 복잡도가 낮은 순서대로 알아보자.1. O(1) - 상수 시간 복잡도. 입력 크기와 무관하게 알고리즘이 일정한 시간 내에 실행된다. 예시로 배열의 첫 번째 원소를 읽는 작업은 O(1)이다.// O(1) - 상수 시간 복잡도// 예시: 배열의 첫 번째 원소를 가져오는 함수function getFirstElement(arr) { return arr[0];}const arr = [1, 2, 3, 4, 5];consol..