본문 바로가기

자료구조28

[Data Structure] 연결 리스트(Linked List) 지난번에 선형 리스트에 대해서 소개를 했습니다. 그러나 선형 리스트는 배열이기 때문에 크기가 정해져있다는 큰 문제점을 가지고 있었습니다. 이점을 보완한 구조가 연결 리스트입니다. 1. 연결 리스트 연결 리스트는 노드로 이루어진 리스트 입니다. 선형 리스트와 다르게 자료의 물리적 순서와 논리적인 순서가 일치하지 않아도 된다는 점이 있으며, 각 자료들은 노드를 통해 저장되고 연결되어있습니다. 연결 리스트는 단순, 원형, 이중 연결과 같은 여러 방식이 있으며 여러 포스트에 걸쳐서 차차 소개해나가도록 하겠습니다. 2. 노드의 구조 리스트 첫 시간에도 설명했지만 노드는 다음과 같은 구조를 가지고 있습니다. 링크 필드가 다음 노드를 가리키고 있고 이것들이 이어져서 리스트를 구성하는 방식이었죠. 이러한 노드를 구현해.. 2021. 6. 25.
[Data Structure] 선형 리스트 (Linear List) 배열을 통해 구현되는 선형 리스트에 대해서 먼저 다루도록 하겠습니다. 1. 선형 리스트 (Linear List) 선형 리스트는 자료들이 순서대로 저장되어있는 리스트입니다. 이때 저장된 물리적 순서와 논리적 순서가 반드시 일치해야합니다. 그래서 선형 리스트는 배열로 구현하게 됩니다. 2. 선형 리스트 구현 사실 선형 리스트는 배열이라고 봐도 무방할 정도로 그동안 써왔던 배열을 그대로 이용하게 됩니다. 다음과 같이 크기가 5인 동물들 배열을 만들었습니다. 아래와 같은 배열이 존재하고 있는 상태입니다. cat dog bear 각 노드에 접근하기 위해서는 데이터에 해당하는 인덱스 값을 통해 접근 하면 됩니다. 이 상태에서 cat과 dog 사이에 snake를 넣는다면 dog와 bear를 각각 인덱스 한 칸씩 뒤로.. 2021. 6. 24.
[Data Structure] 리스트 (List) 1. 리스트 리스트는 자료(데이터)를 순서대로 나열한 자료구조 입니다. 순서대로 나열되어있다는 점 때문에 순차 자료구조라고 부르기도 합니다. 리스트에는 선형 리스트와 연결 리스트 두 가지가 존재합니다. 두 가지는 순서대로 자료가 나열되어있다는 점은 같지만 다음과 같은 차이점이 있습니다. 선형 연결 구현 배열 포인터 메모리 저장 선언시 필요한 메모리 크기만큼 할당한다. 할당된 메모리의 시작 위치 부터 빈자리 없이 연속해서 저장한다. 노드 단위를 갖는데, 이 단위로 메모리를 할당한다. 저장 위치를 상관하지 않고 노드의 필드에 노드가 가르키는 다음 노드의 주소를 기록한다. 삽입/삭제 연산 연산 후에도 자료가 빈자리 없이 순서대로 저장된다. 이때 자료의 물리적 순서와 논리적 순서가 일치한다. 연산 후에 논리적 .. 2021. 6. 24.
[Data Structure] 자료구조 어느정도 프로그래밍을 하다보면 만나게 되는말 '자료구조'. 자료구조는 컴퓨터 공학에서 중요한 개념을 가지고 있기 때문에 다시 정리해보고 공부해 보고자 하여 카테고리를 신설하게 되었습니다. 물론 카테고리는 자료구조로 되어있긴 하지만, 자료구조를 하다보면 따라오는 부분이 알고리즘 부분이기도 해서 자료구조와 알고리즘을 함께 소개하게 되지 않을까 합니다. 1. 자료구조 소개 자료구조는 자료(데이터)를 효과적으로 효과적으로 표현하고 효율적인 저장과 처리하도록 하는 논리적 구조를 이야기 합니다. 자료구조에는 선형, 비선형, 파일, 단순구조가 존재합니다. 선형구조 리스트 스택 큐 비선형구조 트리 그래프 파일구조 순차파일 색인파일 직접파일 단순구조 정수 실수 문자 문자열 시중에 나와있는 책이나 여러 글들을 보면 선형구.. 2021. 6. 22.
300x250