求二叉树中单分支结点的个数
来源:互联网 发布:淘宝信用贷款是什么 编辑:程序博客网 时间:2024/04/27 16:54
#include<iostream>#define N 15using namespace std;char str[] = "ab#d##c#e##";int i = -1;typedef struct node{struct node *leftChild;struct node *rightChild;char data;}BiTreeNode, *BiTree;//生成一个结点BiTreeNode *createNode(int i){BiTreeNode * q = new BiTreeNode;q->leftChild = NULL;q->rightChild = NULL;q->data = i;return q;}BiTree createBiTree1(){BiTreeNode *p[N] = {NULL};int i;for(i = 0; i < N; i++)p[i] = createNode(i + 1);// 把结点连接成树for(i = 0; i < N/2; i++){p[i]->leftChild = p[i * 2 + 1];p[i]->rightChild = p[i * 2 + 2];}return p[0];}void createBiTree2(BiTree &T){i++;char c;if(str[i] && '#' == (c = str[i]))T = NULL;else{T = new BiTreeNode;T->data = c;createBiTree2(T->leftChild);createBiTree2(T->rightChild);}}int getSingleBranchNode(BiTree T){if(NULL == T)return 0;if(NULL == T->leftChild && NULL == T->rightChild)return 0;if(NULL != T->leftChild && NULL != T->rightChild)return getSingleBranchNode(T->leftChild) + getSingleBranchNode(T->rightChild);return 1 + getSingleBranchNode(T->leftChild) + getSingleBranchNode(T->rightChild);}int main(){BiTree T1;T1 = createBiTree1();cout << getSingleBranchNode(T1) << endl;BiTree T2;createBiTree2(T2);cout << getSingleBranchNode(T2) << endl;return 0;}
- 求二叉树中单分支结点的个数
- 求二叉树中双分支结点的个数
- 求二叉树中某层次结点的个数
- 求二叉树叶子结点的个数
- 求二叉树中值为x的结点的个数
- 求树对应的二叉树中无右孩子的结点个数
- 求二叉树中叶子结点的个数
- 求二叉树中分支结点的个数
- 求二叉树中所有结点的个数
- 求二叉树中叶子结点的个数
- 求二叉树的叶子结点个数及深度
- 7-1 求二叉树的叶子结点个数
- 【数据结构基础】求二叉树结点个数
- 求二叉树的高度,叶子节点个数,第K层结点个数,求祖先结点问题
- 求一棵二叉树的深度和双分支结点的个数
- POJ--2180[The Cow Prom] 求结点>=2的的强连通分支个数
- 8-31 编写函数求二叉树中叶子结点的个数
- 二叉树的基本操作精集(创建、遍历、求深度结点以及叶子结点个数)
- Windows不能在本地计算机启动OracleDBConsoleorcl
- 利用cbmakegen导出Code::blocks的Makefile
- 判断一个图形是否为凹多边形(1)
- 转 C++调用HTTP实现方式
- VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)
- 求二叉树中单分支结点的个数
- Cookies和Session
- QTP8.2、QTP9.0、QTP9.2、QTP9.5、QTP10、QTP11下载地址和《QTP自动化测试实践》
- 更改windows时间同步的频率
- hdu 2527 Safe Or Unsafe(哈夫曼编码)
- ODE主要类的结构
- 浅谈HTTP中Get与Post的区别
- timeval 与timespec
- 索引的优点和缺点,设计数据库的人员必看