b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

用于建立排序的二叉树查询查询删除操作的实现代码(C语言)“数据结构和算法”(人)

电脑杂谈  发布时间:2020-03-21 14:20:38  来源:网络整理

二叉排序树的建立c_排序二叉树的遍历_二叉树的建立

//定义数据结构

typedef int KeyData; //假设的关键字类型

typedef struct Node //节点

{

KeyData密钥;

struct Node * Lchild,* Rchild;

} BSTNode,* BSTree;

// 1.基于二叉树的排序搜索的非递归实现(也可以使用递归函数解决)

BSTree SearchBST(BSTree bst,键类型K)

{

BSTree q;

q = bst;

同时(q)

{

如果(q-> KeyK)

返回q;

否则(kKey)q = q-> Lchild;

否则q = q->里尔德(Rchild);

二叉排序树的建立c_二叉树的建立_排序二叉树的遍历

}

返回NULL;

}

//基于二叉树的排序搜索的递归实现

BSTree SearchBST(BSTree bst,键类型K)

{

如果(!bst)返回NULL;

否则(Kbst-> Key)返回bst;

否则,如果(KKey)返回SearchBST(bst-> Lchild,K);

elsereturn SearchBST(bst-> Rchild,K);

}

// 2.二进制排序树的插入操作

void InsertBST(BSTree * bst,键类型K)

{

BiTree s;

如果(* bst == NULL)

{

s =(BSTree)malloc(sizeof(BSTNode));

二叉排序树的建立c_排序二叉树的遍历_二叉树的建立

s->键= K;

s-> Lchild = NULL;

s-> Rchild = NULL;

* bst = s;

}

否则if((K <(* bst)->键)InsertBST(&(((* bst)-> Lchild),K);

否则(if(K>(* bst)->键)InsertBST(&(((* bst)-> Rchild)二叉排序树的建立c,K);

}

//创建二进制排序树

无效CreateBST(BSTree * bst)

{

KeyType键;

* bst = NULL;

scanf(“%d”和键);

同时(键!= ENDKEY)

{

InsertBST(bst,密钥);

scanf(“%d”,&Key);

二叉树的建立_二叉排序树的建立c_排序二叉树的遍历

}

}

//删除二进制排序树的操作

BSTree * DelBST(BSTree bst,键类型K)

{

BSTree * p,* f二叉排序树的建立c,* s,* q;

p = bst;

f = NULL;

while§

{

如果(p-> KeyK)中断;

f = p;

否则(kKey)p = p-> Lchild;

else p = p-> Rchild;

}

如果(pNULL)返回bst;

如果(p-> LchildNULL)

{

排序二叉树的遍历_二叉排序树的建立c_二叉树的建立

如果(fNULL)bst = p-> rchild;

否则(f-> lchild == p)f-> Lchild = p-> Rchild;

else f-> Rchild = p-> Rchild;

免费§;

}

其他

{

q = p;

s = p-> Lchild;

同时(s-> rchild)

{

q = s;

s = s-> Rchild;

}

如果(q == p)q-> Lchild = s-> Lchild;

elseq-> Rchild = s-> Lchid;

p->键= s->键;

免费(s);

}

返回bst;

}


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

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

      • 周蕾
        周蕾

        看包装是过期食品

      • 黑崎凉子
        黑崎凉子

        连伊拉克现政府都不再信任你美爹

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