컴퓨터에 데이터를 저장할 때 일정한 구조로 저장데이터의 효율적인 접근 및 조작을 가능하게 해주는 저장 및 관리 방식데이터를 관리할 수 있는 다양한 방법 고려자료를 구조화화여 데이터를 효율적으로 사용저장된 데이터를 빠르게 접근상황에 맞는 자료구조 선택 스토리지데이터가 영
데이터에 접근할 수 있게 해주는 값주소: 데이터가 저장된 메모리의 실질적인 주소 실제로 변수를 사용할 때는 저장된 값을 받아서 연산을 수행한다
C배열 생성 시 크기가 고정같은 타입의 데이터 수용각 요소의 수정은 가능하지만 삭제 불가능파이썬(리스트)append 메서드를 통해 요소 추가 가능다양한 데이터 타입 수용메모리에 실 데이터가 아닌 레퍼런스 저장되어 다양한 데이터를 수용할 수 있게됨 c배열의 요소들이 메모
메모리의 동적 할당을 기반으로 구현된 리스트 의미특정 데이터를 찾기 위해 순차 탐색노드 : 데이터와 레퍼런스로 이뤄짐데이터 : 노드에 저장된 값레퍼런스 : 다음 노드 주소를 가르킴
노드와 노드가 서로 연결되어 있는 자료구조로, 단순 연결 리스트와 다르게 노드가 이전, 다음 노드의 레퍼런스를 포함하여 구성되어 있다. 이것의 장점은 양방향으로 연결되어 있기 때문에 노드를 탐색하는 방향이 양쪽으로 가능하다는 점접근 및 탐색 시 head 노드부터 하나씩
싱글 링크드 리스트 : 다음 노드 레퍼런스 정보 필요더블 링크드 리스트 : 전후 노드 레퍼런스 정보 모두 필요싱글 링크드 리스트 : 다음 노드에 접근 가능=> 앞에 위치한 노드로 이동 불가더블 링크드 리스트 : 전후 노드에 모두 접근 가능=> 더블 링크드 리스트 안 모
하나의 key와 그 key에 해당하는 value를 합쳐 쌍으로 관리하나의 key에는 하나의 value만 있어야함내부적으로 해시 함수 사용고정된 크기의 배열을 만든다해시 함수를 이용해 key를 원하는 범위의 자연수로 바꾼 후해시 함수 결과 값 인덱스에 key-value쌍
특징: 데이터간 순서 관계를 유지연산접근연산: 특정 위치에 있는 데이터를 읽는다.탐색연산: 특정 조건을 만족하는 데이터를 찾는다.삽입연산: 특정 위치에 새로운 데이터를 저장한다.삭제연산: 특정 위치에 있는 데이터를 지운다.파이썬 리스트 예시 => 개발자들은 추상 자료형
데이터의 상-하 관계를 저장하는 자료 구조상하관계 = 계층적관계배열, 링크드리스트는 선형적 자료 구조를 이루기에 부적합트리 노드: 데이터 및 자식 노드 레퍼런스로 구성A노드 = 루트 노드B, C노드 = 형제 노드B, C노드와 같이 자식 노드가 없는 경우 = 리프 노드
형태 속성: 힙은 완전 이진 트리다.힙 속성: 모든 노드의 데이터는 자식 노드들의 데이터보다 크거나 같다.여러 개의 데이터를 특정 순서로 정리하는것=> 정렬 알고리즘: 데이털를 재배치하는 구체적인 방법완전 이진 트리이므로 동적 배열로 구현완전이진트리: 마지막 레벨을 제