Em có 1 bài toán thế này, nghĩ mấy ngày liền đau cả đầu mà chưa giải quyết được.

Các bác xem cái này [url]https://docs.google.com/spreadsheets/d/1wm7O4MGj69ubI9vdjpIF6EUMCZTU3LbpPxs9YNufpYg/edit?usp=sharing[/url]

Ý em là làm sao dùng PHP, MySQL, HTML tạo ra được cái bảng dữ liệu dạng cây tự động như trên. Để sau này em có muốn chia từng mục nhỏ ra nhiều lần nữa thì nó vẫn thể hiện được từng lớp như vậy. Các bác có thể thay đổi cơ sở dữ liệu sao cho phù hợp nhất. Cảm ơn các bác trước :D

Bước 1: xây dựng cây như bình thường, ngoại trừ việc có thêm hai mục chiều cao và cột (khởi tạo gía trị cho hai mục này là 0). Mục cột thì dễ cập nhập rồi (bằng mục cột của cha nó+1), mục chiều cao thì khi đã insert xong xuôi hết cả bạn hãy duyệt các nút không có con và inc mục chiều cao của chính nó và tất cả nút tổ tiên của nó.

Để biết được nút đó có con hay không thì bạn dùng một mảng boolean phụ

Bước 2: Duyệt cây có gốc là 0 (theo đề bài) bằng dfs để tạo mảng kết quả, lưu ý gốc 0 không nằm trong mảng kết qủa

Bước 3: Dùng mảng kết quả đó để tạo bảng.

Có vẻ chậm, thường mấy bảng phức tạp kiểu này người ta tạo bằng tay hoặc bằng phần mềm WYSIWYG chứ ít khi làm bằng chương trình (vì nhập dữ liệu vào cũng đã mất thời gian như tạo bảng bằng tay rồi, với lại chiều cao của cây hiếm khi vượt quá số 5)