데이터 구조 101

데이터 구조 101에 오신 것을 환영합니다!

여기에서는 데이터 구조화 기술을 익히기 시작하는 데 필요한 개념에 대한 기본 개요를 다룹니다.

정렬
배열은 가장 기본적인 데이터 구조로 실제로 다음 구조(대기열, 스택) 중 일부의 기반으로 사용됩니다.

배열은 단순히 무언가의 목록입니다. 예를 들어

Shopping List: Onion, Garlic, Carrots, Milk, Eggs

let shoppingList = ["Onion", "Garlic", "Carrots", "Milk", "Eggs"]


배열에 항목을 추가하는 규칙은 매우 느슨하며 일반적으로 요소는 임의의 순서로 추가할 수 있지만 다른 데이터 구조에서는 다릅니다.

대기줄
큐는 목록이라는 점에서 배열과 비슷하지만 큐에 항목을 추가하거나 제거할 때 "선입선출"작업 순서를 따라야 합니다.
즉, 대기열에 삽입한 첫 번째 항목은 대기열에서 제거할 첫 번째 항목이 됩니다.

줄을 서서 기다리는 사람들의 줄을 생각해보세요...
가장 먼저 줄을 선 사람이 가장 먼저 줄을 서는 사람이 됩니다!
즉, 대기열에서 요소를 추가하거나 제거할 때 이와 동일한 사고 방식으로 제한됩니다.

스택
스택은 또한 배열과 유사하며 큐의 형제/자매입니다. 그러나 스택에 항목을 추가하거나 제거할 때 "선입, 후출"작업 순서를 따라야 합니다.
즉, 대기열에 삽입한 첫 번째 항목이 대기열에서 제거되는 마지막 항목이 됩니다.

팬케이크 더미를 생각해 보세요!
접시에 추가된 첫 번째 팬케이크는 마지막으로 제거될 것입니다(위에서 아래로 팬케이크를 먹고 한 번에 모든 팬케이크를 자르지 마십시오...).

연결된 목록
Linked List는 사물이 약간 추상화되기 시작하는 곳입니다. 이 구조는 메모리의 다른 요소를 가리키는 변수가 있는 요소(또는 노드)로 구성됩니다. 따라서 배열과 같은 내부에 포함되지 않고 이러한 요소는 서로 관련되는 자체 포인터 변수를 통해 연결됩니다.


연결된 목록은 단일 연결될 수 있습니다. 즉, NULL에 대한 포인터가 있는 요소에 도달할 때까지 다음 요소와 다음 요소를 가리키는 헤드 요소가 있습니다.
또한 이중으로 연결될 수 있습니다. 즉, 각 요소에는 각각의 다음 및 이전 요소에 대한 다음 및 이전 포인터가 있습니다.

나무
트리 구조는 요소를 가리키는 다음 및/또는 이전 변수 대신 왼쪽 및/또는 오른쪽 자식 요소가 있지만 해당 요소가 메모리에서 서로를 가리킨다는 점에서 연결 목록과 비슷합니다. 가리키는 요소가 해당 요소의 왼쪽 또는 오른쪽에 있는지 여부를 나타냅니다.
각 요소 하위 요소의 왼쪽/오른쪽 특성은 구조와 같은 "트리"로 이어져 이 데이터 구조에 이름을 부여합니다!



트리 구조는 완전히 이해하기 가장 어려운 것 중 하나일 수 있지만 적절하게 구현되면 성능 면에서 매우 효과적일 수 있습니다.

이것이 데이터 구조 101의 끝입니다!
이러한 각 구조와 각각의 장단점에 대해 더 많은 것을 배울 수 있지만 이것은 디지털 발을 적시기 위한 기본적인 개요일 뿐입니다.

다음은 주제에 대한 추가 소스에 대한 몇 가지 링크입니다.
tutorialspoint: data_structures_algorithms

좋은 웹페이지 즐겨찾기