二叉树建立和遍历
2014-07-24 15:47
204 查看
二叉树创建遍历规则:
1.先序:根-左-右
2.中序:左-根-右
3.后序:左-右-根
二叉树定义和辅助函数如下:
先序创建二叉树:
中序创建二叉树:
后序创建二叉树
转载请注明作者:小刘
1.先序:根-左-右
2.中序:左-根-右
3.后序:左-右-根
二叉树定义和辅助函数如下:
struct node { int data; struct node* left; struct node* right; }; void visit(int data) { printf("%d ", data); } int indata() { int data; scanf("%d",&data); return data; }
先序创建二叉树:
struct node* CreateBiTree()//先序建立一个二叉树 { char x; //x为根节点 struct node* t; x=indata(); if (x==' ') /* 判断当前子树是否创建完成*/ return NULL; else { t=(struct node*)malloc(sizeof(struct node)); t->data=x; t->left=CreateBiTree(); t->right=CreateBiTree(); } return t; }先序遍历二叉树:
void preOrder(struct node* root) { if (root == NULL) return; visit(root->data); preOrder(root->left); preOrder(root->right); }
中序创建二叉树:
struct node* CreateBiTree()//先序建立一个二叉树 { char x; //x为根节点 struct node* t; x=indata(); if (x==' ') /* 判断当前子树是否创建完成*/ return NULL; else { t=(struct node*)malloc(sizeof(struct node)); t->left=CreateBiTree(); t->data=x; t->right=CreateBiTree(); } return t; }中序遍历二叉树:
void inOrder(struct node* root) { if (root == NULL) return; inOrder(root->left); visit(root->data); inOrder(root->right); }
后序创建二叉树
struct node* CreateBiTree()//先序建立一个二叉树 { char x; //x为根节点 struct node* t; x=indata(); if (x==' ') /* 判断当前子树是否创建完成*/ return NULL; else { t=(struct node*)malloc(sizeof(struct node)); t->left=CreateBiTree(); t->right=CreateBiTree(); t->data=x; } return t; }后序遍历二叉树
void inOrder(struct node* root) { if (root == NULL) return; inOrder(root->left); inOrder(root->right); visit(root->data); }
转载请注明作者:小刘
相关文章推荐
- 二叉树的建立、销毁、各种遍历(递归、非递归)
- 二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 二叉树的建立和先中后顺序遍历
- 暑假集训 8.8 sdut2136 数据结构实验之二叉树的建立与遍历
- 二叉树(BinaryTree)的建立和遍历
- 二叉树的建立,及相关遍历
- 建立二叉树,并层次遍历输出
- 数据结构之二叉树的递归建立和遍历
- 括号法递归建立二叉树并层序遍历输出
- 二叉树的建立和遍历
- 二叉树的建立(根据遍历结果构建)、遍历(非递归)和搜索
- python数据结构--二叉树建立与遍历
- 二叉树节点数据结构-练习 5 二叉树的建立 遍历
- 二叉树的建立和中序、先序、后序遍历
- 二叉树的建立,前序遍历,中序遍历,后序遍历
- 二叉树的建立与遍历
- 二叉树的建立与遍历
- 数据结构----二叉树----建立与遍历
- 【递归】二叉树的先序建立及遍历