二叉树的建立、遍历的简单代码
来源:互联网 发布:linux安全认证 编辑:程序博客网 时间:2024/06/06 04:03
代码很简单,由于在ubuntu虚拟机下,输入一个字符 ,用getchar会收到字符+回车,不知道怎么消除,所以就简单用strcmp+静态数据i结合来给节点赋值。
至于没有free,这个习惯真不好。but由于程序简单,在程序执行完毕后,系统会给free掉这个进程malloc出来的空间的,简单代码的话对系统没有影响,要是大型系统代码的话,就存在隐患
#include <stdio.h>#include <malloc.h>#include <string.h>typedef struct BiTNode_s{int data;struct BiTNode_s *LChild;struct BiTNode_s *RChild;}BiTNode;static int i = 0;BiTNode* CreateTree(){char a[10];BiTNode *Tree;scanf("%s",a);if(!(strcmp("quit",a))){Tree = NULL;return Tree;}Tree = (BiTNode *)malloc(sizeof(BiTNode));if(!Tree){return Tree;}Tree->data = i++;Tree->LChild = CreateTree();Tree->RChild = CreateTree();return Tree;}int pprintf(BiTNode *Tree){if(Tree == NULL){ //printf("TREE is NULL!\n");return 0;}printf("(");printf("%d",Tree->data);if(Tree->LChild) pprintf(Tree->LChild);if(Tree->RChild) pprintf(Tree->RChild);printf(")");return 0;}int PreOrder(BiTNode *Tree)//前遍历{if(Tree){printf("%4d",Tree->data);PreOrder(Tree->LChild);PreOrder(Tree->RChild);}}int MidOrder(BiTNode *Tree)//中间遍历{if(Tree){PreOrder(Tree->LChild);printf("%4d\n",Tree->data);PreOrder(Tree->RChild);}}int main(void){BiTNode *Tree;Tree = CreateTree();if(!Tree){printf("root is null!\n");return 0;}PreOrder(Tree);printf("\n");MidOrder(Tree);pprintf(Tree);return 0;}
- 二叉树的建立、遍历的简单代码
- 简单二叉树的建立和遍历
- 二叉树的建立、遍历
- 二叉树的 建立 遍历
- 二叉树的遍历建立
- 最简单的二叉树建立与遍历
- 简单二叉树的建立及遍历 Java版
- 二叉树的建立和遍历
- 二叉树的建立、遍历、打印
- 二叉树的建立,遍历,线索化
- 二叉树 普通的 建立和遍历
- 二叉树 的建立及遍历 过程
- 二叉树的建立和遍历
- 二叉树的建立及递归遍历
- 二叉树的建立与遍历
- c++二叉树的建立与遍历
- 二叉树的建立与先序中序后序遍历
- 二叉树的建立和遍历
- TLD视觉跟踪技术解析
- sql递归查询
- BES8.1.1中下载应用不成功
- 领略内部类的“内部” [反编译代码]
- mysql Timeout expired
- 二叉树的建立、遍历的简单代码
- STM32之中断与事件---中断与事件的区别
- 创建 /dev/video0 节点
- android crash 分析
- awk总结
- Linux 压缩,解压缩
- 如何让多个DIV在一行上显示
- 在C#的winForm程序中调用和执行javascript
- 最长子序列和问题