유용한 내용이 많아 찬찬히 업데이트 합니다.
1. Left, Right 대신 0, 1
left, right 표현 대신 0, 1을 쓰는 저자의 코드도 흥미롭네요.
/* Classic binary search tree insertion */
struct cbt_node *cbt_insert(struct cbt_node *root, int data)
{
    if (root == NULL)
    {
        root = make_node(data);
    }
    else if (data < root->data)
    {
        root->left = cbt_insert(root->left, data);
    }
    else
    {
        root->right = cbt_insert(root->right, data);
    }
    return root;
}
/* Julienne Walker's binary search tree insertion */
struct jsw_node *jsw_insert(struct jsw_node *root, int data)
{
    if (root == NULL)
    {
        root = make_node(data);
    }
    else
    {
        int dir = root->data < data;
        root->link[dir] = jsw_insert(root->link[dir], data);
    }
    return root;
}
가독성을 조금 희생시킨 것 같지만 라인수를 많이 줄여줍니다. 내용을 이해한다면 사실 가독성이 많이 떨어진다고 하기도 애매하네요 ㅎㅎpython에서도 무리 없이 써먹을 수 있을 것 같습니다.
가령
>>> (1>0) == (True)
True
>>> (1<0) == (False)
True
>>> (1>0) == (1)
True
>>> (1>0) == (0)
False
>>> (1<0) == (0)
True
>>> (1<0) == (1)
False
댓글 없음:
댓글 쓰기