[Algorithm] Data Structure
자료구조
자료구조(data structure)는 컴퓨터 과학에서 자료(data)에 효율적으로 접근하고 수정할 수 있도록 자료를 조직하고, 관리하고, 저장하는 것을 의미한다. 더 정확히 말해, 자료구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다.
자료구조(data structure)는 컴퓨터 과학에서 자료(data)에 효율적으로 접근하고 수정할 수 있도록 자료를 조직하고, 관리하고, 저장하는 것을 의미한다. 더 정확히 말해, 자료구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다.
정리하자면, 자료구조란
1) 데이터 간에 어떤 관계가 있으며,
2) 여러 데이터들의 묶음을 어떻게 저장할 것이고,
3) 데이터에 적용할 수 있는 함수나 명령은 무엇인지(어떻게 데이터를 사용할 것인지)
정의한 것이다.
자료구조는 왜 사용하나?
자료를 더 효율적으로 저장하고, 관리하기 위해 사용하며, 잘 선택된 자료구조는 실행시간을 단축시켜주거나 메모리 용량의 절약을 이끌어 낼 수 있다.
자료구조의 선택 기준
자료의 처리를 보다 효율적으로 하기 위해서 아래와 같은 사항을 고려하여 선택/사용해야 한다.
- 자료의 특성
- 자료의 크기
- 자료의 주요 사용법
- 자료의 처리 시간
- 자료의 활용 빈도
- 자료의 갱신 정도
- 자료가 수행해야하는 연산의 종류
- 프로그램 구현에 필요한 기억공간 크기
- 프로그램의 용이성
자료구조의 종류
단순구조(Simple Structure)
정수, 실수, 문자 및 문자열과 같이 컴퓨터가 기본적으로 제공하는 자료형.
기본 자료형을 모아서 사용자가 배열, 구조체, 클래스를 선언해서 사용하기도 하는데 이를 사용자 정의 자료형이라 한다.
- 배열 : 동일한 자료형의 모음
- 구조체 : 동일하거나 다른 자료형을 여러개 모음
- 클래스 : 구조체에 메소드까지 포함
구조체(structure)는 '타입이 다른 데이터를 하나로 묶는 방법'이다.
C같은 다른 언어에서는 배열로 타입이 같은 데이터만 묶을 수 있기 때문에 타입이 다른 데이터들을 하나로 묶기 위해 구조체라는 것을 사용한다.
결론부터 말하자면, 자바스크립트에는 구조체라는 개념이 없다. 대신 자바스크립트에서는 배열로 타입이 다른 데이터들을 묶을 수 있다.// JavaScript에서는 이런 것이 가능하다. const various = [7, 'string', function(){console.log('this is function')}, [], {}, false]; const typeOfElem = various.map(elem => typeof elem); console.log(typeOfElem); // ["number", "string", "function", "object", "object", "boolean"]
선형구조(Linear Structure)
자료 간 관계가 1 대 1로 연결된 구조. 데이터들이 일렬로 쭉 저장되어 있는 형태
Stack과 Queue가 선형구조에 해당한다.
비선형구조(Non-Linear Structure)
데이터가 (일렬이 아닌) 트리 형태로 저장되어 있다고 생각하고 사용하는 자료구조.
Graph와 Tree가 비선형구조에 해당한다.
파일구조(File Structure)
다양한 자료구조의 데이터를 파일에 저장하는 방식
Reference
- https://andrew0409.tistory.com/148
- https://brunch.co.kr/@newnorm/67
- https://post.naver.com/viewer/postView.nhn?volumeNo=16398872&memberNo=15488377
- https://velog.io/@y1andyu/Data-Structure-1-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EB%9E%80
Author And Source
이 문제에 관하여([Algorithm] Data Structure), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seungsang00/Data-Structure-자료구조-Intro저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)