Articles in this series
직접 구현하지 않더라도 내부적으로 많은 자료 구조가 활용되고 있습니다. 예를 들면 컴퓨터 과학에서 배열은 전통적으로 메모리 연속적인 구조를 가집니다. 하지만 일반적으로 고수준 프로그래밍 언어에서 배열 객체는 내부적으로 이러한 구조를 가지지 않습니다. 이는 전통적 배열...
배열은 임의 접근과 높은 참조 지역성으로 개별 요소에 대한 가장 빠른 접근이 가능한 자료 구조입니다. 이는 메모리상에서 각 요소를 연속적으로 저장하기 때문입니다. 배열의 본질 배열은 실질적으로 순서를 유지하는 메모리 블록 집합의 추상화(집합으로 보는 것도 일종의...
이번 편은 이전 편으로부터 이어집니다. JavaScript의 Array는 매우 많은 연산을 지원합니다. 하지만 지난 편에서 언급했듯 사용할 연산을 제한할 것입니다. 사용할 연산은 아래와 같습니다. 임의의 메모리 위치에 접근하기 임의의 메모리 위치의 데이터...
이번 편은 이전 편으로부터 이어집니다. 배열을 다룰 때 가장 중요한 것은 유효한 메모리 경계를 검사하는 일입니다. 경계 검사를 수행하지 않아 유효하지 않은 위치에서 연산을 수행하게 되면 위험한 결과를 초래할 수 있기 때문입니다. JavaScript와 같은 고수준...
이번 편은 이전 편으로부터 이어집니다. 삽입과 삭제를 수행할 때는 일정 구간을 밀어내거나 당겨오게 됩니다. 이러한 연산을 일반적으로 시프트라 부릅니다. 왼쪽 시프트 function shl(mem: any[], l: number, r: number): void { ...