CS/자료구조
Key, Value 로 데이터를 저장하는 자료구조 빠르게 데이터를 검색할 수 있는 자료구조이다. 빠른 검색속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문이다. 해시 테이블의 평균 시간복잡도는 O(1) 해시 테이블은 각각의 Key 값에 해시 함수를 적용해 배열의 고유한 index를 생성하고, 이 index를 활용하여 값을 저장하거나 검색하게 된다. 자바스크립트 HashTable 구현하기 class HashTable { table = new Array(16); constructor() {} // key와 value를 받아 해시 테이블에 저장한다. setItem = (key, value) => { table[key] = value; }; // key를 통해 value를 가져온다..
LinkedList란 연결 리스트는 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조이다. 데이터들을 갖고 있는 하나의 요소가 노드이다. 노드 속에 다음 노드를 가리키고 있다. 특히, 제일 앞에 있는 노드는 헤드(head), 제일 끝 노드는 테일(tail)이라고 부른다. head와 tail은 데이터 필드는 있지만 쓰지 않을 것이다. 단지 구현의 용이함을 위해서 사용하였는데, 만약 head와 tail의 데이터 필드를 쓰게 되면 추가, 삭제시 3가지를 고려해야한다. 1) 추가, 삭제할 노드가 맨 앞 노드인가 2) 추가, 삭제할 노드가 맨 뒤 노드인가 3) 추가, 삭제할 노드가 중간 노드인가 하지만 hea..
Stack 스택의 개념 스택(stack)이란 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 스택의 특징 스택은 위의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을수 있고, top으로 정한 곳을 통해서만 접근할 수 있다. top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며,삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다. 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 스택에서 top을 통해 삽입하는 연산을 'push' , top을 통한 삭제하는 연산을 'pop'이라고 한다. 따라서 스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다..
컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 집합을 의미. 각 원소들사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다. 자료구조가 필요한 이유 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함. 적절한 자료구조의 사용은 메모리의 용량을 절약해주고, 실행시간을 단축시켜줄 수 있다. 자료구조의 선택기준 작업의 효율성, 추상화, 재사용성을 증가시키기 위하여 상황에 따른 적절한 자료구조 사용이 필요하다. 따라서, 아래의 사항을 고려하여 자료를 좀 더 효율적으로 처리할 수 있도록 한다. 자료의 처리시간 자료의 크기 자료의 활용빈도 자료의 갱신정도 프로그램의 용이성..