Đã 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ỏ.
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| 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