我是靠谱客的博主 明理曲奇,最近开发中收集的这篇文章主要介绍二叉树的遍历(c语言实现)二叉树的遍历,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

二叉树的遍历

二叉树有存在四种遍历方式:先序遍历,中序遍历,后序遍历,层次遍历(最后讲解)。
我们将二叉树的节点以及左右孩子分别记为V 、 L 、 R
在这里插入图片描述
由上图所示,前三中遍历方式是和访问节点的次序决定的。
实现代码如下:

#include <stdio.h>
#include <stdlib.h>
typedef struct node{
	int data;
	struct node* left;
	struct node* right;
}Node;
//先序遍历 
//根->左->右 
void preorder(Node *node)
{
	if(node != NULL)
	{
		printf("%d ",node->data);
		preorder(node -> left);
		preorder(node -> right);
	}
}
// 中序遍历
// 左->根->右
void inorder(Node* node)
{
	if (node != NULL){
		inorder(node -> left);
		printf("%d ", node->data);
		inorder(node -> right);
	}
}
// 后序遍历
// 左->右->根 
void postorder(Node* node)
{
	if (node != NULL){
		inorder(node -> left);
		inorder(node -> right);
		printf("%d ", node->data);
	}
}
int main()
{
	Node n1;
	Node n2;
	Node n3;
	Node n4;

	n1.data = 5;
	n2.data = 6;
	n3.data = 7;
	n4.data = 8;
	
	n1.left  = &n2;
	n1.right = &n3;
	n2.left  = &n4;
	n2.right = NULL;
	n3.left  = NULL;
	n3.right = NULL;
	n4.right = NULL;
	n4.left  = NULL;
	
	printf("先序遍历的结果为:"); 
	preorder(&n1);
	putchar('n');
	
	printf("中序遍历的结果为:"); 
	inorder(&n1);
	putchar('n');
	
	printf("后序遍历的结果为:"); 
	postorder(&n1);
	putchar('n');
	
	return 0;
}

最后

以上就是明理曲奇为你收集整理的二叉树的遍历(c语言实现)二叉树的遍历的全部内容,希望文章能够帮你解决二叉树的遍历(c语言实现)二叉树的遍历所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部