您的位置:首页 > 其它

2013-04-06 二叉树的创建,遍历,统计度为2的节点的个数。

2013-04-06 20:35 106 查看
创建二叉树(链式存储结构)要注意:

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;
}


错误之处,不吝赐教。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐