자료구조 란 데이터에 편리하게 접근하고, 변경하기 위해서 데이터를 저장하거나 조직하는 방법 을 말합니다. 모든 목적에 맞는 자료구조는 없습니다.따라서 각 자료구조가 갖는 장점과 한계를 잘 아는 것이 중요합니다. 자료구조는 언어별로 지원하는 양상이 다릅니다. 따라서 각각의 언어가 가진 자료구조의 사용방법도 중요하지만, 무엇보다 각 자료구조의 본질과 컨셉을 이해하는 것 이 중요합니다.
Primitive Data Structure: 프로그래밍에서 사용되는 기본 데이터 타입 -(단순구조)
Non-Primtive Data Sturcture: 단순한 데이터를 저장하는 구조가 아니라 여러 데이터를 목적에 맞게 효과적으로 저장하는 자료 구조.- (비단순 구조)
Linear Data Structure: 저장되는 자료의 전후관계가 1:1 (리스트, 스택, 큐 등) -(선형구조)
Non-Linear Data Structure: 데이터 항목 사이의 관계가 1:n 또는 n:m (트리, 그래프 등) - (비선형구조)
메모리 효과적이고 가장 빠름 / 순차적 정렬 index
특정 요소를 빠르게 반환
단점-resizing / 수정 사항이 많은 메모리에 부적합
업데이트 안됨/ 소규모 데이터 저장 ex) 좌표 [(3,58) ,(5,49)] /
2~5개 소규모 데이터
단점 - 불가변성
순열자료구조 / 순서가 없음 / index 없음 /중복값 허용 안됨/ 중복된 값을 골라야 할때 / 수정가능 (mutable)/ hash 기반저장
hash는 단방향 (one way) 암호화 입니다. 단방향이란 한번 암호화 하면 복호화가 안된다는 뜻입니다. 실제 값의 길이와 상관없이 hash 값을 일정한 길이를 가집니다. 그럼으로 Hash는 주로 임의의 길이를 갖는 임의의 데이터에 대해 고정된 길이의 데이터로 매핑할때 사용됩니다.
arrary에 저장/ 특정값을 포함하고 있는지 확인시 용이 -look up
중복된 key로 저장 못함 / 키와 값을 묶어서 데이터를 표현해야 할때 유용 실제로 데이터베이스 에서 읽어들인 값을 dictionary로 변환해서 사용 자주 함.
마지막 저장한 데이터가 가장 먼저 읽힘. 브라우저 뒤로가기 first in last out
맛집 예약 시스템 first in first out
거꾸로된 나무 구조로 데이터의 저장의 의미 보다는 저장된 데이터를 더 효과적으로 탐색 하기 위해서 사용됨.
검색할 때