2009-04-29 22 views
10

Một vấn đề thường gặp trong sự nghiệp của tôi là tôi có một số cấu trúc dữ liệu (có thể là một biểu thức) và tôi muốn in nó ở dạng có thể đọc được hoàn chỉnh với thụt đầu dòng hợp lý lựa chọn.Làm thế nào để viết một máy in đẹp tùy chỉnh

Có mục nhập sách hoặc blog mô tả cách thực hiện điều này một cách trang nhã không? Tôi quan tâm đến thuật toán nhiều hơn một thư viện cụ thể.

Trả lời

13

S-Exps tương đương với cấu trúc cây, nếu bạn có thể in đẹp một cây, bạn có thể in ấn một cách dễ dàng.

Ví dụ, so sánh:

(tree 
    (value 89) 
    (tree 
     (value 9) 
     nil 
     nil) 
    (tree 
     (value 456) 
     nil 
     nil)) 

tới:

89 
+- 9 
+- 456 

Thuật toán là giống hệt nhau, sự khác biệt duy nhất là số tiền của xung quanh dữ liệu bạn muốn in ra.

This paper mô tả một thuật toán cho cây khá in

This one mô tả một khá-in cho các ngôn ngữ lập trình

+0

Các liên kết thứ hai là không còn nữa. – Jon

Các vấn đề liên quan