二叉树的创建与遍历(C语言实现)
#include<stdio.h> #include<stdlib.h> typedef struct TreeNode//二叉树节点声明 { int value; TreeNode* left; TreeNode* right; }*PtrNode; void CreatTree(PtrNode *root)//先序建立一个树 { int tmp; scanf("%d",&tmp); if(tmp==-1) *root=NULL; else { *root=(PtrNode)malloc(sizeof(TreeNode)); (*root)->value=tmp; printf("请输入左节点:"); CreatTree(&(*root)->left); printf("请输入右节点:"); CreatTree(&(*root)->right); } } void PreOrder(PtrNode root)//前序遍历 { if(root==NULL) return; printf("%d ",root->value); PreOrder(root->left); PreOrder(root->right); } void InOrder(PtrNode root)//中序遍历 { if(root==NULL) return; InOrder(root->left); printf("%d ",root->value); InOrder(root->right); } void PostOrder(PtrNode root)//后序遍历 { if(root==NULL) return; PostOrder(root->left); PostOrder(root->right); printf("%d ",root->value); } int main() { PtrNode root; CreatTree(&root); PreOrder(root); printf("\n"); return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。