Red-black tree
Binary Search Tree
12
8
19
5
10
23
11
9
Search: O(logN) ~ O(N)
Insert: O(logN) ~ O(N)
Delete: O(1) ~ O(logN)
B+ Tree
B-Tree + Linked List
Database Indexed Rows
https://slides.com/luyunghsien/deck-dcaa2e
Optimized for hard disk search models
Why RBT
12
8
19
6
3
1
O(logN) ➡️ O(N) 🤯
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
14
NULL
NULL
Action: Add 14 node
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Action: Rotate
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Action: Rotate
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Action: Rotate
Action: Change Colors
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Action: Rotate
Action: Change Colors
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Action: Rotate
Action: Change Colors
Action: Rotate
Red Black Tree
12
8
19
5
7
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Action: Rotate
Action: Change Colors
Action: Rotate
10
NULL
NULL
Red Black Tree
12
8
19
5
7
10
15
23
26
21
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1. All nodes are black or red
2. Root node is black
3. Every leafs are black null
4. Each red node has two black children
5. Each nodes route to their leafs will pass through same black nodes.
20
NULL
NULL
Action: Add 20 node
NULL
Action: Change Colors
Action: Rotate
Action: Change Colors
Action: Rotate
Action: Change Colors
All Done! O(logN) 🥸
Red Black Tree
Time Complexily
Search/Insert/Delete
O(logN)
Something New
CSS: Aspect Ratio
For now
<style>
.box-wrapper {
position: relative;
width: 100%;
padding-top: 70%;
height: 0;
}
.box {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
</style>
<div class="box-wrapper">
<div class="box">
<!-- Box with full-width maintained fixed aspect ratio -->
</div>
</div>
CSS: Aspect Ratio
In the future
<style>
.box {
width: 100%;
aspect-ratio: 1 / 0.7;
}
</style>
<div class="box">
<!-- Box with full-width maintained fixed aspect ratio -->
</div>
File System Access
File System Access
async function saveFile() {
const handler = await window.showSaveFilePicker();
const writable = await handler.createWritable();
await writable.write('Yooo');
await writable.close();
}
async function readDir() {
const handler = await window.showDirectoryPicker();
for await (const entry of handler.values()) {
console.log(entry.kind, entry.name);
}
}
https://web.dev/file-system-access/
Chrome Grid Debugger
FontFace Loader
const FONT_FACE_URL = '/fonts/faktum-extrabold.woff2';
if (typeof FontFace === 'function') {
const fontface = new FontFace('Faktum', `url(${FONT_FACE_URL})`);
fontface.load().then(initialize);
} else {
initialize();
}
Tack Tack.
Red-black Tree
By Chia Yu Pai
Red-black Tree
- 344