一步一步复习数据机构和算法基础-二叉树创建(前序建立二叉树)
来源:互联网 发布:mac六国语言 编辑:程序博客网 时间:2024/06/09 22:45
最基础的二叉树:
#include <stdio.h>#include <stdlib.h>typedef int elemtype;//整形为树的数据类型typedef struct node{elemtype data;struct node *lchild,*rchild;}btree,*ptree;void (*visit)(elemtype e);//树的创建ptree CreatTree(){ptree root;elemtype data;scanf("%d",&data);if(data == 0)root = NULL;//0 代表空子树else{root = (ptree)malloc(sizeof(btree));if(!root)exit(1);root->data = data;root->lchild = CreatTree();root->rchild = CreatTree();}return root;}void PrintResult(elemtype e){printf("%d ",e);}//前序遍历二叉树void PreOrderTree(ptree root,void (*visit)(elemtype )){if(root){(visit)(root->data);PreOrderTree(root->lchild,visit);PreOrderTree(root->rchild,visit);}}//中序遍历二叉树void InOrderTree(ptree root,void (*visit)(elemtype )){if(root){PreOrderTree(root->lchild,visit);(visit)(root->data);PreOrderTree(root->rchild,visit);}}//后序遍历二叉树void PostOrderTree(ptree root,void (*visit)(elemtype )){if(root){PreOrderTree(root->lchild,visit);PreOrderTree(root->rchild,visit);(visit)(root->data);}}int main(){ptree root = NULL;root = CreatTree();PreOrderTree(root,PrintResult);printf("\n");InOrderTree(root,PrintResult);printf("\n");PostOrderTree(root,PrintResult);printf("\n");return 0;}
不过二叉树的建立方式各异,下面是第二种二叉树的建立方式
#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxitem 1024#define ok 1typedef char elemtype;typedef struct BiTNode{elemtype data;struct BiTNode *lchild,*rchild;}bitnode,*bitree;//初始化树根节点int init(bitree *t){*t = NULL;return ok;}//前序创建二叉树int creat(bitree *t){char ch;scanf("%c",&ch);if (ch == '#')*t = NULL;else{*t = (bitree)malloc(sizeof(bitnode));if (!*t)exit(1);(*t)->data = ch;creat(&(*t)->lchild);creat(&(*t)->rchild);}return 1;}//前序遍历二叉树void InOrderTraverse(bitree T){if(T){InOrderTraverse(T->lchild);InOrderTraverse(T->rchild);printf("%c",T->data);}}int main(){bitree t;init(&t);creat(&t);InOrderTraverse(t);printf("\n");return 0;}
- 一步一步复习数据机构和算法基础-二叉树创建(前序建立二叉树)
- 一步一步复习数据结构和算法基础-前序线索二叉树
- 一步一步复习数据结构和算法基础-层次建立层次遍历二叉树
- 一步一步复习数据结构和算法基础-二叉树基本操作
- 一步一步复习数据结构和算法基础-中序线索二叉树
- 一步一步复习数据结构和算法基础-后序线索二叉树
- 前序建立二叉树
- 一步一步建立一个二叉树
- 前序创建和遍历二叉树
- 二叉树建立和前序,中序,后序遍历算法
- 由前序和中序建立二叉树的算法
- 根据前序和中序建立二叉树
- 二叉树的建立和前序遍历
- 根据前序遍历和后续遍历建立二叉树
- 类似前序遍历 建立二叉树
- 二叉树的前序建立方式
- 二叉树建立及前序遍历
- 前序遍历建立二叉树
- set_error_handler();
- 修改BTN的背景颜色的图片
- 在Edittext中添加图片并为图片添加点击事件
- C#WinForm中打开IE并打开指定的网站
- 新读图时代:编程语言的演化过程
- 一步一步复习数据机构和算法基础-二叉树创建(前序建立二叉树)
- SMSLIB+RXTX 短信猫开发模块
- 配置mysql数据源
- Andriod phonegap(Cordova)弹出软件盘功能
- HDOJ 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
- 文档的作用和分类
- 多个数据库管理 的讨论
- 迁移Simple-TODO Nodejs实现版至CouchDB数据库 --- 用户认证
- Oracle创建序列,删除序列,得到序列的例子