Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Sự khác biệt giữa Đồ thị (Graph) và Cây (Tree)

Trong lập trình, kiểu dữ liệu biểu thị loại và bản chất của dữ liệu mà người dùng định sử dụng. Trình biên dịch hoặc thông dịch sẽ xử lý kiểu dữ liệu đó và cung cấp vị trí lưu trữ tương ứng trong bộ nhớ chính. Để lưu trữ dữ liệu, chúng ta có các cấu trúc dữ liệu khác nhau tùy thuộc vào bản chất dữ liệu. Vì dữ liệu chủ yếu được phân loại thành tuyến tính và phi tuyến tính, nên cho dữ liệu phi tuyến tính có khái niệm Đồ thị và Cây để biểu diễn dữ liệu đó dễ hiểu hơn.

Vì cả Đồ thị và Cây đều dùng để biểu diễn dữ liệu phi tuyến tính, chúng chia sẻ một số đặc điểm chung: cả hai đều bao gồm Nút (Nodes) và Cạnh (Edges). Tuy nhiên, vẫn có những khác biệt quan trọng được liệt kê dưới đây.

Dưới đây là các khác biệt quan trọng giữa Đồ thị và Cây.

STT Tiêu chí Đồ thị Cây
1 Định nghĩa Đồ thị là biểu diễn đồ họa của dữ liệu phi tuyến tính, dữ liệu được biểu thị bằng các nút và mối quan hệ giữa chúng bằng đường nối gọi là Cạnh. Cây cũng biểu diễn dữ liệu phi tuyến tính nhưng theo ngữ cảnh phân cấp: dữ liệu là nút, dữ liệu tiếp theo là nút con ngay dưới nó.
2 Cài đặt Nút có thể kết nối hoặc không, thậm chí có thể có khóa tự nối (self-loop) để biểu diễn kết nối. Mỗi nút phải có nút cha (trừ gốc) và phải kết nối với nút khác; không có nút nào tồn tại độc lập. Không có vòng lặp hay khóa tự nối vì biểu diễn theo phân cấp.
3 Tìm kiếm dữ liệu Do có thể chứa khóa tự nối, việc tìm kiếm theo duyệt rất khó; người dùng phải nối các điểm để tìm dữ liệu mong muốn. Dữ liệu được biểu diễn dưới dạng nút kết nối phân cấp, nên có thể tìm kiếm bằng duyệt theo cấp độ của cây.
4 Quan hệ Cha-Con Không biểu diễn dữ liệu theo phân cấp, nên không có quan hệ cha-con, không tồn tại nút cha hay nút con. Dữ liệu biểu diễn phân cấp, nên quan hệ cha-con tồn tại giữa các nút; có nút cha và nút con.
5 Quan hệ ngược Không phải đồ thị nào cũng là cây. Tất cả các cây đều là đồ thị.
6 Ứng dụng Chủ yếu dùng cho tô màu và lập lịch công việc. Chủ yếu dùng cho sắp xếp và duyệt.