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

来源:互联网 发布:ktv 知乎 编辑:程序博客网 时间:2024/05/17 03:39

  创建二叉树(链式存储结构)要注意:

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

错误之处,不吝赐教。



原创粉丝点击