二叉排序(查找、搜索)树(2)

电脑杂谈  发布时间:2019-07-14 10:14:50  来源:网络整理

杂:

//下面这是最开始写的,那个时候还不能理解BSTree *root是个什么含义。
//在删除只含单个子树的根节点时会出错。它是错的,但我还是要往上放,666。
void BSTreeDelete(BSTree root, int x) {
    if (!BSTreeFind(root, x)) return;
    BSTNode *pre = NULL, *p = root;
    while (x != p->data) {
        pre = p;
        p = x < p->data ? p->Left : p->Right;
    }
    //1. 左右子树都为空
    if (p->Left == NULL && p->Right == NULL) {
        p->data < pre->data ? pre->Left = NULL : pre->Right = NULL;
        delete p;
        return;
    }
    //2. 左子树或右子树为空
    if (p->Left == NULL) {
        p->data < pre->data ? pre->Left = p->Right : pre->Right = p->Right;
        delete p;
    }
    else if (p->Right == NULL) {
        p->data < pre->data ? pre->Left = p->Left : pre->Right = p->Left;
        delete p;
    }
    //3.左右子树都不为空
    else {
        BSTNode *pre = p->Left, *q = p->Left;
        while (q->Right) {
            pre = q;
            q = q->Right;
        }
        p->data = q->data;
        if (q == p->Left)
            p->Left = p->Left->Left;
        else //最右边的这个节点只可能有左子树
            pre->Right = q->Left;
        delete q;
    }
}

View Code

fbi树二叉树的先序序列(求先序排列)找试场栈。fbi树 二叉树的先序序列(求先序排列)找试场 栈。在中国传统的阴阳历中以朔月的长度29.5306日为1个月的平均值,全年12个月,同回归年的长度365.2422日相差约10日21时,需要置闰,使阴阳历各个月份和天象物候保持对应的关系.我国古六历中用3年闰1个月,5年闰2个月,19年闰7个月的闰月法,每逢闰年所加的月便称为“闰月”.闰月放在一年的年终,例如,秦代和西汉初期使用的《颛项历》,以十月为岁首,把九月做为年终,闰月就放在九月之后,而称为“后九月”.到了西汉初制定太初历时,把闰月分插在一年的各月,并规定以没有中气的那几个月作为闰月,月序仍用上个月的月序,只要称其为“闰某月”.这一置闰规则在采用平气的历法中最合理的.到清代的时宪历时,则改用定气注历,如继续单纯以没有中心置闰的规则,有可能一年要置两个闰月.因此,又补充规定:以两次冬至之间包含有13个月的定为闰年,闰年的第一个没有中气的月定为闰月.这一规则一直沿用至今.闰年中以闰四、五、六月最多,闰九、十月最少,闰十一月、十二月和正月则不会出现,至少在几千年内是这样的.。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-112892-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...