2013-04-06 二叉树的创建,遍历,统计度为2的节点的个数。
2013-04-06 20:35
106 查看
创建二叉树(链式存储结构)要注意:
1 malloc开辟相应的空间。2创建二叉树是,涉及到修改二叉树的值,参数传递为&T。
附代码:
附代码:
错误之处,不吝赐教。
1 malloc开辟相应的空间。2创建二叉树是,涉及到修改二叉树的值,参数传递为&T。
附代码:
#include"C:\Users\Administrator\Desktop\BASEDEFINE.cpp" ElemType ch; typedef struct BiTreeNode { ElemType data; struct BiTreeNode *lchild,*rchild; }BiTreeNode,*BiTree; Status Visit(ElemType e) { printf("%c",e); return Ok; } Status CreateTree(BiTree &t)//传引用!!!!!!!! { scanf("%c",&ch); if(ch=='#')t=NULL; else { t=(BiTree)malloc(sizeof(BiTreeNode)); t->data=ch; CreateTree(t->lchild); CreateTree(t->rchild); } return Ok; } Status PreOrderTraverseTree(BiTree t,Status (*Visit)(ElemType e)) { if(t!=NULL) { Visit(t->data); PreOrderTraverseTree(t->lchild,Visit); PreOrderTraverseTree(t->rchild,Visit); }return Ok; } int main() { BiTree t; CreateTree(t); PreOrderTraverseTree(t,Visit); return Ok; }前天在图书馆借了一本关于数据结构的书,其中一个题是统计二叉树的度为2的节点个数,和遍历是同一种情况,稍微修改即可解决,轻松加愉快。
附代码:
Status PreOrderTraverseTree(BiTree t) { if(t!=NULL) { if(t->lchild&&t->rchild)i++; PreOrderTraverseTree(t->lchild); PreOrderTraverseTree(t->rchild); }return Ok; }
错误之处,不吝赐教。
相关文章推荐
- 二叉树的创建,遍历,叶节点数,总结点数,深度
- 二叉树的创建,遍历,查找,查找父节点,深度,大小等的递归实现
- java 创建二叉树 前序、中序、后续 递归遍历树 和 非递归遍历,递归求树高,递归求树节点数
- 二叉树的创建,遍历,求高度,算出节点数,算出叶子节点数,左右子树的交换,二叉树的销毁。
- 一个关于二叉树的创建、先序遍历、中序遍历、后序遍历、求叶子节点的完整函数的c语言完整程序。
- 创建二叉树:层次遍历--树的宽度高度,后序遍历--祖先节点
- 二叉树的创建、遍历、深度、叶子节点数
- 二叉树的字符串创建和遍历,求深度,叶子节点数
- 转载 二叉树的创建、遍历、深度、叶子节点数
- 二叉树基本操作--创建,三种遍历,叶子节点
- 二叉树的创建,遍历(前序,中序,后序)-递归 非递归
- 李洪强iOS经典面试题35-按层遍历二叉树的节点
- 算法源码之非递归创建/遍历二叉树
- 跟进问题“在每个节点中填充下一个正确的指针”。层次遍历二叉树
- SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点
- 二叉树的创建及遍历--java实现
- tinyxml使用:创建XML,遍历打印xml文件 select操作,获取单个节点值,删除节点操作,修改节点操作,增加节点操作
- 二叉树1——创建与插入节点
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树的创建、前序遍历、中序遍历、后序遍历