Giao dịch đặt hàng trước của hai cây khác nhau có thể giống nhau mặc dù chúng khác nhau không?


11

Câu hỏi này giải thích khá nhiều rằng họ có thể, nhưng không cho thấy bất kỳ ví dụ nào về việc có hai cây khác nhau có cùng một giao dịch đặt hàng trước.

Nó cũng được đề cập rằng giao dịch theo thứ tự của hai cây khác nhau có thể giống nhau mặc dù chúng có cấu trúc khác nhau. Có một ví dụ về điều này?


2
Đây là một bài tập cấp rất. Bạn đã thử những gì và bạn đã bị mắc kẹt ở đâu?
Raphael

1
Ngay cả khi bạn có bưu điện, ngoài việc đặt hàng trước, truyền tải, bạn vẫn có thể nhận được các cây khác nhau. Tại sao cây không phải là duy nhất có thể với giao dịch đặt hàng trước và đặt hàng trước? Bạn có thể tìm thấy một ví dụ theo thứ tự trong Từ biểu diễn theo thứ tự đến cây nhị phân . Cũng liên quan / trùng lặp: Sự kết hợp nào của tuần tự trước, sau và theo thứ tự là duy nhất?
Công tước

Câu trả lời:


28

Cây ví dụ (hình ảnh) :

     A:                 B:
     ‾‾                 ‾‾
     1                  1
    /                  / \
   2                  2   3
  /  
 3   

Đây là một ví dụ phù hợp với kịch bản của bạn, giá trị của gốc A là 1, có con trái có giá trị 2 và con trái của nó cũng có con trái có giá trị 3.

Giá trị của gốc cây B là 1, có con trái có giá trị 2 và con phải có giá trị 3.

Trong cả hai trường hợp, giao dịch Preorder là 1-> 2-> 3.


11
Đây thực sự là một trường hợp cụ thể của một quy tắc chung rằng đối với bất kỳ cây nào theo thứ tự nào đó, có một cây tuyến tính chỉ có các con trái (hoặc chỉ phải) có cùng thứ tự.
Dancrumb

5
@Dancrumb Lần lượt là trường hợp cụ thể của quy tắc chung rằng đối với bất kỳ cây nào có N nút và đối với bất kỳ hình dạng cây nào (= cây không nhãn) với N nút, có một cách gắn nhãn sau để chia sẻ đường ngang với nó. người trước Điều này giữ cho bất kỳ giao dịch nào (chuyến thăm trước / sau- / theo thứ tự).
chi

8

Giả sử bạn xem xét cây của nút. Bây giờ lấy bất kỳ cây nhị phân nào có nút và đặt tên cho các nút theo cách đánh số thứ tự trước của chúng. Sau đó, rõ ràng trình tự đặt hàng trước của cây sẽ là .nn1,2,,n

Điều này có nghĩa là chúng ta có thể đặt tên cho các nút của bất kỳ cấu trúc cây nhị phân nào để nó sẽ tạo ra chuỗi thứ tự trước giống như của một cây khác.

Điều này sẽ không hoạt động nếu chúng ta phải đảm nhận các thuộc tính khác của cây. Chẳng hạn, nếu cây được coi là cây tìm kiếm nhị phân, với tất cả các khóa khác nhau, trình tự đặt hàng trước của nó sẽ xác định duy nhất cây.


8

Đếm đếm

nnthCn=(2n)!/(n!(n+1)!).

    o         o         o         o         o
   /         /         / \         \         \
  o         o         o   o         o         o      .
 /           \                     /           \
o             o                   o             o

n!

(2n)!(n+1)!=2n(2n1)(n+2).

n!nn!Cn>1n>1.n


1

Về câu hỏi thứ hai của bạn, có hai cây khác nhau về cấu trúc có thể có cùng một thứ tự truyền tải. Một ví dụ như vậy là:

     A:                 B:

     1                  2
    / \                  \
   2   3                  1
                           \
                            3

Inorder traverse của cả hai cây là như nhau. 2 -> 1 -> 3

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.