본문 바로가기

CS/자료구조3

[자료구조] Array와 List 배열(Array) 여러 데이터를 하나의 이름으로 그룹핑해서 관리 하기 위한 자료구조. index와 값의 쌍으로 구성 index는 값에 대한 유일무이한 식별자 논리적 저장 순서와 물리적 저장 순서가 일치 => index로 해당 원소에 접근할 수 있다. (O(1)) 연속된 메모리의 공간으로 이루어져 있다 배열은 정의와 동시에 길이를 지정하며 길이를 바꿀 수 없다. 장점 인덱스를 통한 검색이 용이함. 연속적이므로 메모리 관리가 편하다. 단점 크기가 고정되어 있기 때문에 빈 공간이 남아 있을 수 있다. => 메모리 낭비 정적이므로 배열의 크기를 컴파일 이전에 정해주어야 한다. 컴파일 이후 배열의 크기를 변동 할 수 없다. 리스트(List) 리스트는 순서가 있는 엘리먼트의 모임으로 배열과는 다르게 빈 엘리먼트는 .. 2022. 4. 14.
[자료구조] ArrayList와 LinkedList 리스트(List) 리스트는 배열이 가지고 있는 인덱스 없이 순차적으로 저장하여 빈틈없는 데이터의 적재 라는 장점을 취한 자료구조로 중간에 빈 공간을 허용하지 않으며 저장공간의 크기가 가변적 이라는 특징을 가지고 있습니다. 리스트의 핵심은 원소들간 순서가 있는 데이터의 모임으로 배열과 달리 순서대로 접근해야 합니다. 이 글에서는 가장 많이 쓰이는 ArrayList와 LinkedList에 대해 다루겠습니다. ArrayList ArrayList는 내부적으로 배열(Array)을 이용하는 리스트로 배열의 한계점인 정적인 크기를 극복하기 위해 만들어졌습니다. 따라서 선언시 별도의 크기를 지정해 줄 필요가 없습니다. 하지만 배열을 사용할 때 사용자가 격어야 할 복잡한 과정을 숨겨놓은 것일 뿐, 삽입/삭제시 배열의 요.. 2021. 12. 11.
[자료구조] 스택과 큐에 대해 알아보자 스택(STACK) 스택 자료구조는 접시에 음식을 쌓아 올리듯 데이터를 차곡차고 쌓아 올린 형태로 자료를 구성합니다. 일상에서 쌓아 올리는 방식을 추상화하여 자료구조로 정의한 것이 스택입니다. 스택은 같은 구조와 같은 크기의 데이터를 정해진 방향으로만 쌓을 수 있고 ,top으로 정한 한 곳으로만 접근하도록 제한 되어 있습니다.따라서 top을 통해 들어온 데이터가 일정한 방향, 즉 아래에서 위로 차곡차곡 쌓이게 됩니다. 여기서 top는 가장 마지막에 삽입이 된 위치 즉 스택에서의 가장 상단에 위치하게 됩니다. 스택의 특징으로는 가장 마지막에 삽입된 데이터가 가장 먼저 삭제 된다는 구조적인 특징을 가집니다. 이러한 스택 동작 구조를 후입선출 LIFO(last in First out) 이라고 합니다. 스택의 활.. 2020. 7. 1.