[자료구조] 더블 연결 리스트(Double Linked List)

더블 연결 리스트(Double Linked List) 더블 연결 리스트는 연결 리스트의 한 종류입니다. 연결 리스트는 한 방향으로만 노드를 연결한 형태임을 기억한다면, 더블 연결 리스트는 이름대로 양 방향으로 노드를 연결합니다. 즉 한 노드는 다음 노드와 이전 노드를 가리키고 있습니다. 위 그림을 보면 화살표가 양 방향으로 그려진 것을 볼 수 있습니다. 이는 앞서 설명한 다음 노드와 이전 노드로의 이동이 가능함을 의미합니다. 더블 연결 리스트의 추상 자료형 더블 연결 리스트는 연결 리스트에서 이전 노드를 가리키는 부분이 추가된 버전입니다....

April 10, 2021 · 5 min · Pacientes

[자료구조] 배열 리스트와 연결 리스트 비교

배열 리스트와 연결 리스트 비교 배열 리스트와 연결 리스트는 서로 다른 특징을 갖고 있습니다. 상황에 따라 배열 리스트가 장점이 되는 경우가 있고, 연결 리스트가 장점이 되는 경우가 있습니다. 배열 리스트와 연결 리스트의 장단점을 비교해볼까요? 배열 리스트 배열 리스트는 배열을 사용한 리스트입니다. 장점 배열 리스트는 데이터의 위치를 인덱싱(Indexing)할 수 있습니다. 따라서 데이터의 조회(참조) 및 출력에 대해 매우 빠른 접근(O(1))이 가능합니다. 단점 배열 리스트는 크기가 고정되어 있습니다....

March 29, 2021 · 2 min · Pacientes

[자료구조] 연결 리스트(Linked List)

연결 리스트(Linked List) 일반적으로 리스트를 생각하면 연결 리스트를 떠올리곤 합니다. 그만큼 리스트를 구현하는 방법 중 연결 리스트를 많이 채택하고 있습니다. 앞에서 배열 리스트에 대해 알아보았는데 배열 리스트는 치명적인 단점이 존재합니다. 배열 리스트는 메모리의 낭비가 존재한다는 점 입니다. 연결 리스트는 데이터를 동적으로 할당하여 데이터들끼리 연결합니다. 추가되는 데이터를 그때그때 메모리에 할당하기 때문에 메모리 낭비가 존재하지 않습니다. 하지만 배열 리스트와 다르게 데이터의 접근이 불편합니다. 찾고자 하는 데이터의 위치를 파악하기 위해서는 각 연결된 데이터들을 하나씩 찾아봐야 하기 때문입니다....

March 27, 2021 · 6 min · Pacientes

[자료구조] 배열 리스트(Array List)

선형 & 비선형 자료구조 선형 자료구조(Linear Data Struct)는 데이터가 순차적인 형태로 저장되는 것을 의미합니다. 아래 그림을 보면 A, B, C, D 자료가 순차적으로 저장된 것을 볼 수 있습니다. 비선형 자료구조(Non-Linear Data Struct)는 데이터가 비순차적인 형태로 저장됩니다. 대표적으로 트리(Tree)와 그래프(Graph)가 있습니다. 선형 자료구조와는 반대로 자료의 저장 형태가 다릅니다. 리스트(List) 리스트는 선형 자료구조를 대표하는 자료구조입니다. 따라서 데이터의 저장 형태가 앞서 설명한 선형 자료구조와 동일한 형태입니다. 리스트는 구현 방식에 따라서 배열 리스트(Array List)와 연결 리스트(Linked List)로 구분합니다....

March 26, 2021 · 7 min · Pacientes

[자료구조] 재귀(Recursive)

재귀(Recursive) 적절한 데이터를 저장하는 방법 및 구조를 공부하는 자료구조(Data Structure), 효율적인 방법으로 문제를 푸는 알고리즘(Algorithm)을 공부하기 위해서는 재귀에 대한 이해가 필요합니다. 프로그래밍에서 재귀는 ‘주어진 문제를 해결하기 위하여 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 방식’이라 정의합니다. 볼드체로 표기한 ‘하나의 함수’와 ‘자신을 다시 호출’하는 독특한 구조 덕분에 재귀는 재밌는 표현이 많습니다. 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어....

February 22, 2021 · 5 min · Pacientes