일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- BTREE
- 이항계수
- DP 알고리즘
- 파이썬
- 알고리즘
- 1141번
- CSS
- 백준 14501번
- 문제 풀이
- 풍선터뜨리기
- B-tree
- 1
- 한반도평화와공공외교
- 해싱
- html
- hashing
- 백준
- 주창형 공공외교
- 연산자 문제
- 챗봇
- 백준 1246번
- 해설
- 백준 11050번
- N과 M
- 가치규범의 공공외교
- Python
- 0의 개수
- 풀이
- 백준 1487번
- 실버
- Today
- Total
목록전체 글 (60)
SunFly의 코딩 및 정보 블로그
※ 맨 아래층이 아닌 인덱스 노드로의 삽입 : type-2 curr가 맨 아래층보다 위의 층의 노드이며 여기에 삽입하는 경우 B-tree의 삽입과 동일한 방식으로 일어남. 다만, 사용할 포인터 필드는 ptri 이다. (즉, index node에 대한 Pointer를 저장하는 필드.) Case 1: 빈자리가 있는 경우 : 순서에 맞춰 삽입하고 종료 Case 2: 빈자리가 없는 경우 : overflow 발생 ● Case 1: 빈공간이 있는 경우 ● Case 2: 빈공간이 없을 경우 ※ 삽입 과정에서 부모 주소의 관리 : Stack 이용 삽입과정에서 데이터노드를 찾아가는 과정에서 각 노드의 Pointer를 stack에 저장 인덱스 구조의 Root에서 시작 아래로 내려갈 때마다 그 직전에 노드의 주소를 stac..
※ 정상상황에서의 삽입 ● 초기상황이 아닌 경우가 정상 상황(Root 노드의 ptrd[1] != NULL인 상황) ● Root에서 출발하여 삽입할 record가 들어가야 할 데이터 노드를 찾아야 한다. 삽입할 record의 key값이 new_key라고 하자. Root노드에서 출발하여 navigation을 반복하여 인덱스 구조의 leaf노드에 도달하도록 한다. "new_key
※ 첫 record 삽입 ● Root가 아직 NULL인 경우에 해당됨 ● 아직 하나의 record가 삽입되기 전 인덱스 노드 하나를 만들고 이를 Root가 가리키게 함. ptri[0]에 NULL을 넣음(이것은 이 노드가 index 구조의 leaf 노드임을 나타낸다.) 데이터 노드를 하나 만듬. record를 데이터 노드에 삽입. 인덱스 노드의 ptrd[0]가 이 데이터 노드를 가리키게 한다. 인덱스 노드의 ptri[1] 에 0을 넣는다. ≫ 초기상황(아직 B+Tree의 형태를 갖추지 못함.) 임을 나타냄. ※ 초기 상황(초반부) 삽입 ● Root가 NULL이 아닌 경우의 초반부 삽입 Sequence set에 데이터 노드 하나만 존재하는 경우 Root 인덱스 노드의 Pointer[1]이 NULL인지를 체크..
■ 실제로 가장 널리 활용되는 구조 ■ 인덱스 구조와 시퀀스셋(data node set)으로 구성됨. ※ 인덱스 구조(Index) 각 노드가 record 대신 key값만 저장된 B-tree 구조 노드의 key값은 데이터 노드로 찾아가는데 이용하는 navigation에 이용 B-tree의 요구와 조건은 모두 충족시켜야함. ※ 시퀀스셋(data node set) 데이터 노드들의 연결리스트로 구성됨. 노드는 데이터 즉 record들을 가짐. (모든 레코드가 저장됨.) 모든 record는 key값 순서로 정렬되어 있음. ▶인덱스 구조의 루트 노드를 제외한 모든 노드들은 "at least half full(절반 이상)" 조건을 만족함. (단, 초기 상황은 예외) ※ B+tree의 장점 범위 탐색(Range Sea..