数据结构C语言版二叉树的结构和遍历的实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构C语言版二叉树的结构和遍历的实现相关的知识,希望对你有一定的参考价值。
数据结构【C语言版】二叉树的结构和遍历的实现
1.二叉树的存储结构
链式存储
//代码展示
//二叉链
typedef int BTDateType;
typedef struct BinaryTreeNode
BTDateType date;
struct BinaryTreeNode* left;//指向左孩子
struct BinartTreeNode* right;//指向右孩子
BTNode;
//三叉链
typedef struct BinaryTreeNode
BTDateType date; //指向该节点的数据
struct BinaryTreeNode* parent;//指向该节点的双亲
struct BinaryTreeNode* left;//指向左孩子
struct BinaryTreeNode* right;//指向右孩子
BTNode;
2.二叉树的遍历
前序遍历:
typedef int BTDateType;
typedef struct BinaryTreeNode
BTDateType date;
struct BinaryTreeNode* left;
struct BinartTreeNode* right;
BTNode;
void PreOrder(BTNode* root)
if(root == NULL)
printf("NULL ");
return;
printf("%d ",root->date);//先访问根
PreOrder(root->left);//再访问左子树
PreOrder(root->right);//最后访问右子树
- 前序遍历的特点是第一个一定是根!
中序遍历
typedef int BTDateType;
typedef struct BinaryTreeNode
BTDateType date;
struct BinaryTreeNode* left;
struct BinartTreeNode* right;
BTNode;
void InOrder(BTNode* root)
if (root == NULL)
printf("NULL ");
return;
PreOrder(root->left);//先访问左子树
printf("%d ", root->date);//再访问根
PreOrder(root->right);//最后访问右子树
- 中序遍历的特点是知道根的位置就可以判断出左右子树!
后序遍历
typedef int BTDateType;
typedef struct BinaryTreeNode
BTDateType date;
struct BinaryTreeNode* left;
struct BinartTreeNode* right;
BTNode;
void PostOrder(BTNode* root)
if (root == NULL)
printf("NULL ");
return;
PreOrder(root->left);//先访问左子树
PreOrder(root->right);//然后访问右子树
printf("%d ", root->date);//最后访问根
以上是关于数据结构C语言版二叉树的结构和遍历的实现的主要内容,如果未能解决你的问题,请参考以下文章