[Cây] Cây tổng quát
Đã rất nhiều lần mình tìm hiểu cách cài đặt và nhập, duyệt của cây tổng quát, tuy nhiên thì chỉ tìm được cách cài đặt theo một số phương pháp chứ chưa thấy code nhập và duyệt cây tổng quát cụ thể…
Có nhiều cách cài và duyệt cây, các bạn có thể tham khảo trên mạng. Bài này mình chỉ đề cập đến 1 phần nhỏ.
Dưới đây là code cài đặt, nhập, và duyệt cây tổng quát theo thứ tự trước, các phép toán khác các bạn tự phát triển hoặc trong một ngày đẹp trời nào đó mình lại viết tiếp 😀
PROGRAM CAY_TONG_QUAT; uses crt; const n = 12; type item = char; {Kieu phan tu} pointer = ^node; node = record info : item; numChild : integer; {so con cua 1 nut} child : array[1..n] of pointer; end; var T : pointer; procedure inputTree(var T: pointer); {nhap vao cay} var i: integer; p: pointer; begin if T = nil then begin new(T); write('Nhap nut goc: '); readln(T^.info); end; p:= T; write('Nhap so con cua node ', p^.info, ' : '); readln(p^.numChild); for i:=1 to p^.numChild do begin new (p^.child[i]); write('Nhap nut con thu ', i, ' : '); readln(p^.child[i]^.info); end; for i:= 1 to p^.numChild do inputTree(p^.child[i]); end; procedure duyetTruoc(T: pointer); var i: integer; begin if T <> nil then begin write(T^.info, ' '); for i:=1 to T^.numChild do duyetTruoc(T^.child[i]); end; end; BEGIN clrscr; inputTree(T); duyettruoc(T); readln; END.
Code cũng dễ hiểu nên mình không chú thích gì thêm 🙂
Đọc thêm: Một số phép toán trên cây nhị phân tìm kiếm
a ơi cái này có phải là cây đồ thị trie không ạ
Mình không hiểu bạn nói đến cây đồ thị là thế nào, đề bài nêu rõ là cây tổng quát mà 🙂
Cảm ơn về bài code. Thuật toán rất dễ hiểu. Mặc dù tôi chưa học ngôn ngữ lập trình này, tôi chỉ đang học C++.