본문 바로가기

리스트4

연결 리스트 Linked List 선형 리스트는 일반적인 배열과 다를바 없으므로 다시 작성하는 자료구조에서는 넘어가고 바로 연결 리스트부터 공부를 시작하겠습니다. 0. 연결 리스트 연결 리스트는 선형 리스트와는(순차 자료구조) 다르게 자료의 순서가 존재하지 않는 자료구조 입니다. 순서가 없는 자료구조를 저장하는 방식은 노드(포인터)를 이용하는 방식입니다. 자료는 데이터 필드와 링크 필드 한 쌍으로 구성되어 있는데 데이터에는 실질적으로 사용될 데이터가 있고 링크 필드는 다음 데이터의 주소를 가리키는 정보가 담겨있습니다. 그래서 이것을 그림으로 풀어보면 다음과 같은 모양으로 구성되어있습니다. 이런식으로 연결되있어서 연결 리스트라고 불리우게 됩니다. 그러면 지금부터 노드 구현, 삽입, 삭제를 구현해보도록 하겠습니다. 1. 노드 정의 노드를 구.. 2021. 9. 3.
[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