def is_recursive(json_structure):
    """Check whether a given JSON-like structure is recursive."""
    seen_ids = set()
    worklist = [json_structure]
    while worklist:
        this = worklist.pop()
        if not isinstance(this, (dict, list, tuple)):
            continue
        this_id = id(this)
        if this_id in seen_ids:
            return True
        seen_ids.add(this_id)
        if isinstance(this, dict):
            worklist.extend(this.values())
        else:
            worklist.extend(this)
    return False
