二叉树中序遍历怎么看,一个普通二叉树的遍历

 2023-09-28 阅读 27 评论 0

摘要:要点:二叉树遍历,要针对基本图形的遍历,先序(NLR),中序(LNR),后序(LRN),且往上看,它是某节点的左子,但往下看,它可能还是某节点的根,这时就要继续往下找&#

要点:二叉树遍历,要针对基本图形的遍历,先序(NLR),中序(LNR),后序(LRN),且往上看,它是某节点的左子,但往下看,它可能还是某节点的根,这时就要继续往下找,直到找到没有子(也就是叶子)时,左子,才是真正的左子,自己体会。

图形:

二叉树中序遍历怎么看?

程序:

#include<stdio.h>
#include<stdlib.h>struct node{char data;struct node* left;struct node* right;
};
struct node* newNode(char data){struct node* node = (struct node*)malloc(sizeof(struct node));node->data=data;node->left=NULL;node->right=NULL;return node;
}
void printPostorder(struct node* node){if(node == NULL)return;printPostorder(node->left);printPostorder(node->right);printf("%c ",node->data);
}
void printInorder(struct node* node){if(node==NULL){return;}printInorder(node->left);printf("%c ",node->data);printInorder(node->right);
}
void printPreorder(struct node* node){if(node==NULL){return;}printf("%c ",node->data);printPreorder(node->left);printPreorder(node->right);
}
int main(){struct node *root=newNode('A');root->left=newNode('B');root->right=newNode('C');root->left->left=newNode('D');root->right->left=newNode('F');root->right->right=newNode('H');root->left->left->right=newNode('E');root->right->right->left=newNode('I');root->right->right->left->right=newNode('G');printf("\nPreorder raversal of binary tree is \n");printPreorder(root);printf("\nInorder raversal of binary tree is \n");printInorder(root);printf("\nPostorder raversal of binary tree is \n");printPostorder(root);return 0;
}

输出:

Preorder raversal of binary tree is
A B D E C F H I G
Inorder raversal of binary tree is
D E B A F C I G H
Postorder raversal of binary tree is
E D B F G I H C A

最小二叉树, 

转载于:https://www.cnblogs.com/litifeng/p/10662009.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/102253.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息