基于递归的二叉树遍历
来源:互联网 发布:淘宝哪家iphone 编辑:程序博客网 时间:2024/06/05 08:54
//基于递归的二叉树遍历#include<stdio.h>#include<stdlib.h>struct TreeNode{int val;TreeNode *left,*right;};TreeNode *insertTree(TreeNode *root,int val){ TreeNode *newNode; if(root==NULL){ newNode=new TreeNode; newNode->val=val; newNode->left=NULL; newNode->right=NULL; return newNode; } if(val<=root->val) root->left=insertTree(root->left,val); else root->right=insertTree(root->right,val); return root; } void delTree(TreeNode *root){ if(root->left!=NULL) delTree(root->left); if(root->right!=NULL) delTree(root->right); delete root; } void LFRTraverse(TreeNode *root){if(root->left!=NULL)LFRTraverse(root->left);printf("%d-",root->val);if(root->right!=NULL)LFRTraverse(root->right);}void FLRTraverse(TreeNode *root){printf("%d-",root->val);if(root->left!=NULL)FLRTraverse(root->left);if(root->right!=NULL)FLRTraverse(root->right);}int main(){FILE *fin;TreeNode *root;int val;char inFile[30];printf("input the data file's name:\n");scanf("%s",inFile);fin=fopen(inFile,"r");root=NULL;while(fscanf(fin,"%d",&val)!=EOF)root=insertTree(root,val);fclose(fin);printf("traversing left sub-tree firstly,then root,and right sub-tree lastly:\n");LFRTraverse(root);printf("\n");printf("traversing root firstly,then left sub-tree,and right sub-tree lastly:\n");FLRTraverse(root);printf("\n");delTree(root);return 0;}
0 0
- 基于递归的二叉树遍历
- 基于计数栈的非递归二叉树遍历算法
- 基于层次遍历的非递归复制二叉树
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的遍历(递归)
- 愚人节的礼物
- 初识HTML
- Permutation Sequence
- UVA 573 The Snail
- 【第三次自考】第一阶段总结
- 基于递归的二叉树遍历
- 采药问题
- androd中主线程和非主线程的通信机制(Handler/Looper/Message)
- C++引用
- Vector
- eclipse完全支持jsp页面下HTML/JS/CSS智能提示
- 不使用第三个变量,交换两个变量的值
- 修改PD的OOM生成脚本
- 用数组实现链表的好处