Tôi cần thuật toán truyền tải cây cho các cây tùy ý trong cả thứ tự Traversal thứ nhất và thứ nhất. Phần khó khăn là tôi cần để có thể bắt đầu từ một nút tùy ý và tiếp tục cho đến khi một nút cụ thể khác được duyệt qua.Duyệt qua một cấu trúc cây chung bắt đầu từ một nút tùy ý trong C#
Bây giờ, tôi có thể sử dụng bất kỳ thuật toán thông thường nào và bỏ qua các nút được duyệt qua cho đến khi tôi nhấn nút bắt đầu và tiếp tục cho đến nút kết thúc (mà hiện tại tôi đang thực hiện) nhưng điều này rất xấu và không hiệu quả.
Bất kỳ đề xuất nào, vui lòng.
CẬP NHẬT: Mỗi nút của tôi có một id được liên kết với chúng. Trong một số trường hợp, tôi có các tham chiếu nút bắt đầu và kết thúc để bắt đầu. Trong các trường hợp khác, tôi có hai Id, tôi kiểm tra xem nút đã cho là nút bắt đầu hay nút kết thúc bằng cách kiểm tra các id của chúng. Tôi sử dụng traversal độ sâu đầu tiên để tìm nút bắt đầu. Cả hai nút bắt đầu và kết thúc đều có thể ở bất kỳ đâu trong cấu trúc phân cấp. Tôi hy vọng ai đó có thể đưa ra một ý tưởng cho trường hợp tôi đã đưa ra các tham chiếu đến cả nút start-end và nút kết thúc. BTW, các nút trong cây là thực sự được sắp xếp theo một thứ tự sắp xếp, bắt đầu từ 0 cho mỗi sub-node của một node và có một nút gốc
Bạn sẽ tìm thấy nút bắt đầu trong cây như thế nào mà không vượt qua nó? – BrokenGlass
Bạn đã có * nút * chưa? Nếu không, bạn cần một datastructure thứ hai để tăng tốc tìm kiếm các nút start/end. – harold
Vui lòng chỉ định cách cấu trúc cây của bạn. Có bất kỳ thứ tự sắp xếp nào được thực hiện không? Các nút liên quan như thế nào? –