文章

25

粉丝

40

获赞

3

访问

20.5k

头像
二叉树的建立和遍历 题解:
P1109 同济大学机试题
发布于2024年9月9日 15:52
阅读数 698

 

 

//给的是先序遍历的输入序列 
//07/09/24 23:02
//
#include <iostream>
using namespace std;

typedef struct Node{
	char da;
	struct Node *lchild, *rchild;
	//这里后面的node还没有定义,所以先用struct Node来定义 指针,指针*是两个都有的 
}* node;
//结构体指针和别名 

void createBitTree(node &n){
	//char建议直接合进函数中 ,方便多次递归的输入,否则创建形参char不好递归输入 
	char c;
	cin>>c;
	//这里的n就是一个新Node的地址 
	if(c == '0') n = NULL;
	else{
		n = new Node;
		//new返回新Node地址 
		n->da = c;
		//该函数是直接通过递归直接建立tree
		//多层递归,有多次输入
		//所以后续就是创建顺序
		createBitTree(n->lchild);
		createBitTree(n->rchild); 
	}//递归的终点是叶子结点下空节点的'0' 
}

void preOrderTraverse(node n){
	//只输出,没有修改,可以不传指针 
	if(n != NULL){
		cout<<n->da<<' ';
		preOrderTraverse(n->lchild);
		preOrderTraverse(n->rchild);
	}
}//递归的终点是叶子结点下的空节点,NULL 

void inOrderTraverse(node n){
	if(n != NULL){
		inOrderTraverse(n->lchild);
		cout<<n->da<<' ';
		inOrderTraverse(n->rchild);
	} 
}

void po...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发