博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用递归方法建立二叉树
阅读量:4289 次
发布时间:2019-05-27

本文共 576 字,大约阅读时间需要 1 分钟。

假设二叉树为:

                                        a

                              b                 c

                                   d                 e

       

         因为程序中要知道叶子结点(终点),所以要将上面的二叉树变成扩展二叉树 (把叶子结点的孩子补成#, 用作标记),  扩展后就变成了:         

                                       a

                            b                    c

                       #        d          #       e

                              #    #             #    #

 

          那么,在输入的时候,需要输入: ab#d##c#e##      (注意,输入后,按enter键即可)   ,程序如下:

 

[cpp] 
 
  1. #include<iostream>  
  2. using namespace std;  
  3.   
  4. typedef struct node  
  5. {  
  6.     struct node *leftChild;  
  7.     struct node *rightChild;  
  8.     char data;  
  9. }BiTreeNode, *BiTree;  
  10.   
  11. void createBiTree(BiTree &T)  
  12. {  
  13.     char c;  
  14.     cin >> c;  
  15.     if('#' == c)  
  16.         T = NULL;  
  17.     else  
  18.     {  
  19.         T = new BiTreeNode;  
  20.         T->data = c;  
  21.         createBiTree(T->leftChild);  
  22.         createBiTree(T->rightChild);  
  23.     }  
  24. }  
  25.   
  26. int main()  
  27. {  
  28.     BiTree T;  
  29.     createBiTree(T);  
  30.   
  31.     return 0;  
  32. }  

 

          经遍历验证可知,上面的程序是正确的, 至于如何遍历,以后的博文会陆续给出相应的程序.

转载地址:http://gdrgi.baihongyu.com/

你可能感兴趣的文章
查询内容在网页里面分页显示+跳页查看
查看>>
mysql substring函数截取值后赋给一个declare变量
查看>>
Java Thread 的 sleep() 和 wait() 的区别
查看>>
DbUtils入门
查看>>
每一个程序员需要了解的10个Linux命令
查看>>
service的自调用 VS service之间调用
查看>>
Android权限管理之Permission权限机制及使用
查看>>
重识Retrofit
查看>>
PowerDesigner(数据建模)使用大全
查看>>
RadioButton与CheckBox_优就业
查看>>
java中的throw与throws的区别
查看>>
优化用户登录体验效果
查看>>
用js批量选中功能实现更改数据库中status状态值_优就业
查看>>
MySql表信息基础知识学习
查看>>
为什么document找到的不是html节点_优就业
查看>>
Javascript本地存储小结
查看>>
常用排序方法介绍
查看>>
Java异常分类和统一处理
查看>>
原 荐 cache线程池对数据库操作的饥饿问题
查看>>
使用Eclipse把java文件打包成jar 含有第三方jar库的jar包
查看>>