TTreeSentinel
Không gian lập trình với AI

Thứ tự nghiêm ngặt của cây tìm kiếm nhị phân

Kiểm tra nút tìm kiếm số nguyên với hai tham chiếu con.

● ● ●TreeSentinel●
Quy trình · Thứ tự nghiêm ngặt của cây tìm kiếm nhị phân ×
def is_strict_bst(root):
    pending, seen, checks = [(root, None, None)], set(), []
    while pending:
        node, low, high = pending.pop()
        if node is None:
            continue
        if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
            raise ValueError("tree.node")
        if id(node) in seen or len(seen) == 1000:
            raise ValueError("tree.structure")
        seen.add(id(node))
        value, left, right = node
        checks.append((value, low, high))
        pending.extend([(right, value, high), (left, low, value)])
    return all((low is None or low < value) and
               (high is None or value < high) for value, low, high in checks)
✳Thứ tự nghiêm ngặt của cây tìm kiếm nhị phân
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
01

Kiểm tra trước khi áp dụng

So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.

02

Mô hình

Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.

03

Dự án

Thử cây rỗng và giới hạn tổ tiên, trả về sai cho khóa trùng và từ chối chu trình, con dùng chung, nút sai hoặc trên 1000 nút.

Quy trình

Thứ tự nghiêm ngặt của cây tìm kiếm nhị phân

Quy trình ↗
Quy trình
def is_strict_bst(root):
    pending, seen, checks = [(root, None, None)], set(), []
    while pending:
        node, low, high = pending.pop()
        if node is None:
            continue
        if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
            raise ValueError("tree.node")
        if id(node) in seen or len(seen) == 1000:
            raise ValueError("tree.structure")
        seen.add(id(node))
        value, left, right = node
        checks.append((value, low, high))
        pending.extend([(right, value, high), (left, low, value)])
    return all((low is None or low < value) and
               (high is None or value < high) for value, low, high in checks)
Không gian lập trình với AI

Rà soát cấu trúc trước khi tin các giá trị bên trong

TreeSentinel cung cấp không gian dự án Windows và cuộc trao đổi AI gắn với tệp nguồn cho việc bảo trì dữ liệu cấu trúc. Bắt đầu bằng việc chỉ ra nơi ứng dụng nhận cấu trúc và cách dùng kết quả kiểm tra. Yêu cầu mô hình xem toàn bộ ranh giới đó trước khi đề xuất phép kiểm tra đơn giản hơn hoặc cách duyệt khác.

Ví dụ, tác vụ với bst_order.py có thể tìm hiểu cây mà các nút con trực tiếp có vẻ đúng thứ tự nhưng giá trị sâu hơn vi phạm giới hạn của tổ tiên. Kèm cấu trúc lỗi và kết quả mong đợi. Sau đó hỏi cách xử lý nút sai dạng và tham chiếu lặp để bản sửa thứ tự không bỏ qua giả định về hình dạng đang duyệt.

Rà soát đề xuất theo các kết quả riêng: cây hợp lệ, lỗi thứ tự và cấu trúc sai dạng. Chạy kiểm tra dự án liên quan và xem từng kết quả đến bên sử dụng thế nào. Giữ mọi thay đổi chính sách khóa trùng lặp rõ ràng. Điều trông như sửa phép so sánh nhỏ có thể đổi dữ liệu mà ứng dụng xung quanh chấp nhận.

TreeSentinel kết nối điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ, với thông tin xác thực khi cần. Bạn có thể chọn mô hình AI đã gỡ ràng buộc nếu điểm cuối cung cấp. Hạn chế nhà cung cấp, giới hạn ngữ cảnh và công cụ có sẵn vẫn thuộc cấu hình đó; việc rà soát nên dựa vào cấu trúc cụ thể và kết quả quan sát được thay vì sự tự tin của mô hình.

Câu hỏi khi kiểm tra dữ liệu cấu trúc

Vì sao kiểm thử vi phạm ở sâu hơn nút con trực tiếp?

So sánh cục bộ có thể qua dù hậu duệ vi phạm giới hạn của tổ tiên trước đó. Cung cấp cấu trúc lồng nhỏ làm lộ khác biệt và nêu kết quả mong đợi. Rà soát cách duyệt đề xuất theo đó trước khi chấp nhận đơn giản hóa logic kiểm tra.

Khóa trùng là lỗi hình dạng hay quyết định thứ tự?

Xác định trong giao ước ứng dụng. Ví dụ áp dụng thứ tự nghiêm ngặt, loại trừ khóa bằng nhau. Xem bên sử dụng có phân biệt đầu vào sai dạng với cấu trúc đúng dạng nhưng sai thứ tự không, và giữ quy ước phản hồi đó trong thay đổi đề xuất.

Tham chiếu nút lặp làm thay đổi điều gì?

Nó có thể có nghĩa đầu vào không có hình dạng cây mà hàm mong đợi, dù từng giá trị có vẻ chấp nhận được. Thêm cấu trúc tham chiếu chung hoặc chu trình khi phù hợp. Kiểm tra việc kết thúc và từ chối thay vì chỉ dựa vào ví dụ lồng thông thường.

Có thể thay kiểm tra hợp lệ bằng kiểm tra đầu ra đã sắp xếp không?

Chỉ sau khi tính đến cấu trúc và hành vi lỗi mà bên gọi cần. Kiểm tra giá trị làm phẳng có thể che giấu nút sai dạng hoặc giả định duyệt. Yêu cầu mô hình giải thích đánh đổi bằng mã thực tế trước khi đổi giao ước kiểm tra.

Tải cho Windows ↗

TreeSentinel · Cập nhật 2026-10-25