Ở đây chúng ta sẽ thấy cấu trúc dữ liệu cây nhị phân phân luồng. Chúng ta biết rằng các nút cây nhị phân có thể có nhiều nhất là hai nút con. Nhưng nếu họ chỉ có một phần tử con hoặc không có phần tử con nào, thì phần liên kết trong biểu diễn danh sách liên kết sẽ không có giá trị. Sử dụng biểu diễn cây nhị phân theo luồng, chúng ta có thể sử dụng lại các liên kết trống đó bằng cách tạo một số luồng.
Nếu một nút có một số vùng con bên trái hoặc bên phải còn trống, vùng đó sẽ được sử dụng làm luồng. Có hai loại cây nhị phân luồng. Cây luồng đơn hoặc cây nhị phân luồng hoàn toàn. Trong chế độ luồng đơn, có hai biến thể khác. Luồng trái và luồng phải.
Trong chế độ luồng bên trái nếu một số nút không có nút con bên trái, thì con trỏ bên trái sẽ trỏ đến nút con nhỏ hơn của nó, tương tự trong chế độ luồng bên phải nếu một số nút không có nút con bên phải, thì con trỏ bên phải sẽ trỏ đến người kế nhiệm nhỏ hơn của nó. Trong cả hai trường hợp, nếu không có người kế nhiệm hoặc người tiền nhiệm, thì nó sẽ trỏ đến nút tiêu đề.
Đối với cây nhị phân hoàn toàn luồng, mỗi nút có năm trường. Ba trường giống như nút cây nhị phân bình thường, hai trường khác để lưu trữ giá trị Boolean để biểu thị liệu liên kết của phía đó là liên kết thực tế hay chuỗi.
Cờ luồng bên trái | Liên kết trái | Dữ liệu | Liên kết Phải | Cờ Chủ đề Phải |
Đây là các ví dụ về cây luồng trái và phải
Đây là cây nhị phân hoàn toàn theo luồng