✨Phép quay cây nhị phân

Phép quay cây nhị phân

Trong khoa học máy tính, Phép quay trên các cây nhị phân là một phép biến đổi làm thay đổi vai trò cha con giữa 2 nút trên cây. Có hai phép quay là quay phải hoặc quay trái. Phép quay phải chuyển một nút cha thành con phải của nút con bên trái, phép quay trái chuyển một nút cha thành con trái của nút con phải. Đồng thời, với sự thay đổi đó, một sự điều chỉnh cho các nút con trước đây của nút mới chuyển thành nút cha. Phép quay bảo toàn thứ tự giữa của các nút trên cây, nghĩa là trước và sau một hoặc nhiều phép quay, danh sách duyệt các đỉnh theo thứ tự giữa (trung thứ tự) không thay đổi. Nhờ vậy nếu một cây nhị phân là cây tìm kiếm nhị phân của một dãy khóa thì sau khi quay nó vẫn là cây tìm kiếm nhị phân của dãy khóa đó.

Phép quay cây nhị phân tại gốc

Mô tả

phải|Phép quay phải và trái một cây

Phép quay phải

Giả sử R0 là nút gốc của cây và có nút con trái là L. Phép quay phải chuyển L thành gốc của cây và gốc R cũ trở thành con phải của cây. Khi đó con phải trước đây của L là LR bị tách khỏi L, để giữ nguyên tính chất của cây nhị phân tìm kiếm, ta phải cho liên kết trái của R trỏ tới LR. Như vậy giả mã của phép quay phải tại gốc T.root của cây T có thể viết như sau RIGHT-ROTATE(T) R0=T.root; L=R0.Left; If L=NULL then return False R0.Left=L.Right; L.Right=R0; T.root=L;

Phép quay trái

Giả sử R0 là nút gốc của cây và có nút con phải là R. Phép quay phải chuyển R thành gốc của cây và gốc R0 cũ trở thành con trái của cây T. Khi đó con trái trước đây của R là RL bị tách khỏi mối nối trái của R, còn mối nối phải của R0 lại tách khỏi R, do đó ta có thể cho liên kết phải của R0 trỏ tới RL. Như vậy giả mã của phép quay trái tại gốc T.root của cây T có thể viết như sau LEFT-ROTATE(T) R0=T.root; R =R0.Right; If R=NULL then return False R0.Right=R.Left; R.Left=R0; T.root=R;

Chú ý

phải|Tính chất kết hợp của phép cộng thể hiện trên cây biểu thức số học Sau này ta sẽ gọi phép quay cây T tại gốc đơn giản là phép quay cây T. Một số người so sánh phép quay với tính chất kết hợp của phép toán, chẳng hạn phép cộng như hình bên.

Phép quay tại một đỉnh trong của cây

Giả sử U là một đỉnh trong của cây nhị phân T. Ký hiệu cha của U là P. Khi đó nếu U có con trái L, ta sẽ gọi phép quay phải cây con gốc U là phép quay phải cây T tại đỉnh U. Tương tự, nếu U có con phải, ta gọi phép quay trái cây con gốc U là phép quay trái cây T tại đỉnh U. Như vậy cũng có thể xem phép quay cây T tại một đỉnh là trường hợp tổng quát của phép quay tại gốc. Mã giả của phép quay tổng quát này được xét thêm trường hợp U không là gốc. RIGHT-ROTATE(T,U) L=U.Left; If L=NULL then return False U.Left=L.Right; L.Right=U; if U=T.root then T.root=L else begin P=U.parent; if U=P.right then P.right=L else P.Left=L end; LEFT-ROTATE(T,U) R=U.Right; If R=NULL then return False U.Right=R.Left; R.Left=U; if U=T.root then T.root=R else begin P=U.parent; if U=P.right then P.right=R else P.Left=R end; Các phép quay phải hoặc trái được gọi chung là phép quay.

Tính chất của phép quay

Phép quay giữ nguyên danh sách duyệt trung thứ tự của cây;

Phép quay biến một cây tìm kiếm nhị phân thành cây tìm kiếm nhị phân.

Ứng dụng của phép quay trên cây nhị phân

Phép quay được ứng dụng để tái cân bằng khi thực hiện phép chèn hoặc xóa trên các cây tìm kiếm nhị phân AVL hay cây đỏ đen, cây tìm kiếm nhị phân tối ưu.

👁️ 63 | ⌚2025-09-16 22:27:17.418

QC Shopee
Trong khoa học máy tính, **Phép quay** trên các cây nhị phân là một phép biến đổi làm thay đổi vai trò cha con giữa 2 nút trên cây. Có hai phép quay là quay
Trong khoa học máy tính, **Phép quay** trên các cây nhị phân là một phép biến đổi làm thay đổi vai trò cha con giữa 2 nút trên cây. Có hai phép quay là quay
thumbnail|right|upright=1.35|Đồ thị của dưới dạng là hàm của một số thực dương Trong toán học, **logarit nhị phân** () là lũy thừa mà số cần phải được nâng lên để được số , nghĩa là
**Cây splay** là một cây tìm kiếm nhị phân tự cân bằng. Nó có thực hiện các thao tác cơ bản như chèn, tìm, và xóa trong thời gian trừ dần O(log n). Với nhiều
**Cây splay** là một cây tìm kiếm nhị phân tự cân bằng. Nó có thực hiện các thao tác cơ bản như chèn, tìm, và xóa trong thời gian trừ dần O(log n). Với nhiều
Trong khoa học máy tính, **tìm kiếm nhị phân** (), còn gọi là **tìm kiếm nửa khoảng** (_half-interval search_), **tìm kiếm logarit** (_logarithmic search_), hay **chặt nhị phân** (_binary chop_), là một thuật toán tìm
Trong khoa học máy tính, **tìm kiếm nhị phân** (), còn gọi là **tìm kiếm nửa khoảng** (_half-interval search_), **tìm kiếm logarit** (_logarithmic search_), hay **chặt nhị phân** (_binary chop_), là một thuật toán tìm
**Cây đỏ đen** (tiếng Anh: _red-black tree_) là một dạng cây tìm kiếm nhị phân tự cân bằng, một cấu trúc dữ liệu được sử dụng trong khoa học máy tính. Cấu trúc ban đầu
Trong khoa học máy tính, **treap** và **cây tìm kiếm nhị phân ngẫu nhiên hóa** là hai dạng cấu trúc dữ liệu cây tìm kiếm nhị phân liên quan chặt chẽ đến nhau. Chúng lưu
Trong khoa học máy tính, **treap** và **cây tìm kiếm nhị phân ngẫu nhiên hóa** là hai dạng cấu trúc dữ liệu cây tìm kiếm nhị phân liên quan chặt chẽ đến nhau. Chúng lưu
Trong khoa học máy tính, một **Cây AVL** là một cây tìm kiếm nhị phân tự cân bằng, và là cấu trúc dữ liệu đầu tiên có khả năng này. Trong một cây AVL, tại
Trong khoa học máy tính, **cây 2-3-4** là cây nhiều nhánh mà mỗi nút của nó có thể có đến bốn nút con và ba mục dữ liệu. Cây 2-3-4 là cây cân bằng giống
[[Phần cứng|Phần cứng máy tính là nền tảng cho xử lý thông tin (sơ đồ khối). ]] **Lịch sử phần cứng máy tính** bao quát lịch sử của phần cứng máy tính, kiến trúc của
[[Phần cứng|Phần cứng máy tính là nền tảng cho xử lý thông tin (sơ đồ khối). ]] **Lịch sử phần cứng máy tính** bao quát lịch sử của phần cứng máy tính, kiến trúc của
**_Harry Potter và Bảo bối Tử thần – Phần 2_** (tựa gốc tiếng Anh: **_Harry Potter and the Deathly Hallows – Part 2_**) là một bộ phim giả tưởng năm 2011 của đạo diễn David
**_Harry Potter và Bảo bối Tử thần – Phần 2_** (tựa gốc tiếng Anh: **_Harry Potter and the Deathly Hallows – Part 2_**) là một bộ phim giả tưởng năm 2011 của đạo diễn David
Một **bản phân phối ****Linux** (thường được gọi tắt là **distro**) là một hệ điều hành được tạo dựng từ tập hợp nhiều phần mềm dựa trên hạt nhân Linux và thường có một hệ
Một **bản phân phối ****Linux** (thường được gọi tắt là **distro**) là một hệ điều hành được tạo dựng từ tập hợp nhiều phần mềm dựa trên hạt nhân Linux và thường có một hệ
phải|nhỏ|Một dạng tự thụ phấn tự động xảy ra trong loài lan _[[Ophrys apifera_. Một trong hai khối phấn tự cong mình về phía đầu nhụy.]] **Tự thụ phấn** là khi phấn hoa từ cùng một cây
phải|nhỏ|Một dạng tự thụ phấn tự động xảy ra trong loài lan _[[Ophrys apifera_. Một trong hai khối phấn tự cong mình về phía đầu nhụy.]] **Tự thụ phấn** là khi phấn hoa từ cùng một cây
Trong toán học và trong khoa học điện toán, **hệ thập lục phân** (hay **hệ đếm cơ số 16**, tiếng Anh: _hexadecimal_), hoặc chỉ đơn thuần gọi là thập lục, là một hệ đếm có
**Nhĩ Chu Vinh** (, 493 -530), tên tự là **Thiên Bảo** (天寶), người Bắc Tú Dung, là tướng lĩnh, quyền thần nhà Bắc Ngụy thời Nam Bắc triều trong lịch sử Trung Quốc. Ông là
**Nhĩ Chu Vinh** (, 493 -530), tên tự là **Thiên Bảo** (天寶), người Bắc Tú Dung, là tướng lĩnh, quyền thần nhà Bắc Ngụy thời Nam Bắc triều trong lịch sử Trung Quốc. Ông là
**_Tom & Jerry: Quậy tung New York_** hay **_Tom & Jerry_** (phát hành tại thị trường quốc tế với tên **_Tom & Jerry: The Movie_**) là một bộ phim hoạt hình của Hoa Kỳ dựa
**Đại chiến Thổ Nhĩ Kỳ** (Tiếng Đức: _Großer Türkenkrieg_), còn được gọi là **Chiến tranh Liên đoàn Thần thánh** (Tiếng Thổ Nhĩ Kỳ: _Kutsal İttifak Savaşları_), là một loạt các cuộc xung đột giữa Đế
**Đại chiến Thổ Nhĩ Kỳ** (Tiếng Đức: _Großer Türkenkrieg_), còn được gọi là **Chiến tranh Liên đoàn Thần thánh** (Tiếng Thổ Nhĩ Kỳ: _Kutsal İttifak Savaşları_), là một loạt các cuộc xung đột giữa Đế
**Cáp Nhĩ Tân** là một địa cấp thị và thủ phủ của tỉnh Hắc Long Giang ở phía Đông Bắc Trung Quốc. Cáp Nhĩ Tân là thành phố đông dân thứ 8 của Trung Quốc
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt
Cóc Sấy Dẻo vị cay là loại mứt đặc biệt hoàn quyện giữa vị chua đặc trưng của cóc cùng với các thành phần đi kèm, vị cay cay chua chua nồng nồng của mứt