二叉树的建立
来源:互联网 发布:qq看不见对方网络状态 编辑:程序博客网 时间:2024/05/16 09:48
#include<stdio.h>#include<stdlib.h>typedef struct tree //定义二叉树的结构{char data;struct tree *lchild;struct tree *rchild;}BinTree;/***创建二叉树*/void CreateTree(BinTree *&pBtree){char c;scanf("%c",&c);if(c=='@') //子树的结束标识符{pBtree=NULL;}else{pBtree=(BinTree *)malloc(sizeof(BinTree));if(pBtree==NULL){printf("malloc使用失败!\n");exit(0);}pBtree->data=c;CreateTree(pBtree->lchild); //继续递归去建立左右二叉子树CreateTree(pBtree->rchild);}}/***先序遍历二叉树*/void FirstTraverse(BinTree *&pBtree){if(pBtree==NULL)return;printf("%c",pBtree->data);FirstTraverse(pBtree->lchild);FirstTraverse(pBtree->rchild);}/***求节点的总数*/int sumNode(BinTree *&pBtree){int sum=0;if(pBtree==NULL)return 0; sum++; sum+=sumNode(pBtree->lchild); sum+=sumNode(pBtree->rchild); return sum;}/***销毁二叉树*/void DestroyTree(BinTree *&pBtree){if(pBtree==NULL)return;DestroyTree(pBtree->lchild);DestroyTree(pBtree->rchild);free(pBtree);}int main(){BinTree *pBtree;printf("请输入二叉树的节点:\n");CreateTree(pBtree);printf("二叉树的先序遍历:\n");FirstTraverse(pBtree);printf("\n节点总数是:\n");printf("%d\n",sumNode(pBtree));DestroyTree(pBtree);return 0;}
0 0
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 【二叉树的建立】
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- poj.1837
- Nginx:配置指南(2)
- 数据结构-拓扑排序
- JAVE的优势
- C++ Level-Order Traversal
- 二叉树的建立
- 啥? ++[[]][+[]]+[+[]] = 10?
- Android 嵌套布局导致的Exception: java.lang.ClassCastException
- Linux查看CPU和内存使用情况
- 黑马程序员-Foundation框架
- 数据结构_求二叉树的宽度_C语言源代码
- hkhj
- poj 2607 Fire Station
- MATLAB画图常用调整代码