연결리스트란? 연결리스트는 데이터를 순차적으로 저장하는 단방향 선형구조이다. 각 요소는 노드로 구성되어 있으며, 각 노드는 자신의 데이터와 다음 노드를 가리키는 포인터(혹은 링크)로 이루어져 있다. 연결리스트의 특징 각 노드는 포인터(혹은 링크)를 갖고 있어 데이터가 일렬로 연결되는데, 한 방향으로만 탐색이 가능하다. 연결리스트의 시작을 알리는 헤드가 있는데, 이 헤드 노드는 첫 번째 노드를 가리키는 역할을 한다. 동적으로 크기를 조절할 수 있어 삽입과 삭제가 배열보다 간단하고 메모리 효율도 좋다. 특정 요소에 접근하기 위해서는 헤드부터 순차적으로 탐색해야 한다. 연결리스트의 연산으로는 노드 추가, 노드 삭제, 탐색이 있다. 연결리스트의 시간복잡도 노드 추가 노드 추가에는 크게 head에 추가, 마지막에..
스택이란? 스택은 프로그래밍에서 자주 쓰이는 자료구조 중 하나이다. 이름에서 알 수 있듯이 데이터를 쌓으며 사용하는 자료구조이다. 스택의 특징 스택은 나중에 넣은 값이 가장 먼저 나온다는 후입선출(LIFO, Last-In-First-Out) 형식의 선형 자료구조이다. 스택은 데이터를 한쪽으로만 넣을 수 있으며, 중간에 있는 데이터를 삭제할 수는 없다. 배열, 또는 연결리스트로 구현이 되어 구현하기 쉽다. 스택은 한정된 용량을 갖고있어, 저장 용량보다 초과하여 데이터를 저장할 경우 스택 오버플로우(Stack Overflow)가 발생한다. 함수 호출, 오류 발생 시 디버깅 역추적(Traceback) 할 때 도움을 준다. 스택의 연산은 삽입, 삭제, 읽기로 이루어진다. 시간복잡도 삽입(Push) 스택의 최상단..
자료구조(資料構造, Data Structure)는 컴퓨터 과학에서 데이터를 효율적으로 조작, 저장 및 관리하기 위한 방법이나 구조를 의미한다. 자료구조를 효율적으로 사용하는 것은, 보다 효율적인 알고리즘을 사용할 수 있게 한다. 상황에 맞는 자료구조를 사용한다면, 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 도와준다. 자료구조에는 형태에 따라 선형 자료구조와 비선형 자료구조로 나뉘게 된다. 출처 : 자료구조 위키백과, 이미지 출처
선형 자료구조(Linear Data Structure)는 데이터가 일렬로 연결되어 있는 자료구조를 얘기한다. 선형 자료구조는 데이터를 순차적으로 저장하고 접근하는데 사용한다. 선형 자료구조의 내부 데이터들은 하나의 데이터 뒤에 하나의 데이터가 오는 1:1의 관계를 가진다. 선형 자료구조의 종류는 다음과 같다. 배열 스택 큐 환형 큐 덱 연결리스트 이중 연결리스트 출처 : 자료구조의 정의와 종류