二叉排序树的树形结构输出

最近看数据结构看到了二叉排序树,便照着书上的例子自己写了个头文件。

但是书上没有写到如何将二叉排序树输出,便自己琢磨着写了个,源代码中负责输出的部分代码如下:

 template <typename T>
 inline void BiSortTree<T>::OutPut()
 {
  int line=this->Depth();
  bsTree<int> **ad=(bsTree<int>**)malloc(line*sizeof(bsTree<int>*)); //bsTree是二叉树的一个节点,包含key,lchild,rchild,parent三项
  for(int i=0;i<line;i++) 
   ad[i]=(bsTree<int>*)malloc(pow(2.0,i)*sizeof(bsTree<int>)); //ad[i]指向二叉排序树的第i层,数组ad[i]的长度为二叉排序树第i层的长度
  for(int i=0;i<line;i++)
   for(int j=0;j<pow(2.0,i);j++)
   {
    ad[i][j].lchild=NULL;
    ad[i][j].rchild=NULL;
    ad[i][j].parent=NULL;
   }
   ad[0]->key=this->root->key; //root是一个指向bsTree的指针,作为二叉排序树的根节点
   ad[0]->lchild=this->root->lchild;
   ad[0]->rchild=this-&g

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
排序是一种二数据结构,也称为二查找或二搜索。它要么是一棵空,要么满足以下条件:对于任意节点,其左子中的所有节点的值小于它的值,而右子中的所有节点的值大于它的值。这个特点使得在二排序中进行查找操作具有高效性能,接近于折半查找。如果二排序不平衡,它的深度可能达到n,查找效率将变为O(n),相当于顺序查找。因此,为了获得较好的查找性能,需要构造一棵平衡的二排序。 二排序的存储结构一般使用链式存储结构,每个节点包含一个数据元素以及两个指向左子和右子的指针。可以使用递归或迭代的方式实现创建、查找、插入、删除等操作,以及计算平均查找长度等指标。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [数据结构-二排序(图文详细版)](https://blog.csdn.net/qq_55660421/article/details/122530387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [数据结构实验-二排序算法](https://download.csdn.net/download/whales996/10746805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值