2.1 先序创建二叉树

#include "pch.h"
#include <iostream>

typedef char TElenType;
typedef struct BiTNode {
public:
	BiTNode(TElenType ch) : data(ch), lchild(nullptr), rchild(nullptr) { }
	TElenType data;
	struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;

//先序创建二叉树
void CreateBiTree(BiTree& T) {
	TElenType ch;
	std::cin >> ch;
	if (ch == '#')
		T = nullptr;
	else {
		T = new BiTNode(ch);
		if (!T)
			exit(OVERFLOW);
		CreateBiTree(T->lchild);
		CreateBiTree(T->rchild);
	}
}

//先序遍历二叉树
void PreOrderTraverse(const BiTree& T) {
	if (T == nullptr)
		return;
	std::cout << T->data << "  ";
	PreOrderTraverse(T->lchild);
	PreOrderTraverse(T->rchild);
}

int main() {
	BiTree BT;
	std::cout << "请以先序输入二叉树节点:";
	CreateBiTree(BT);
	std::cout << "\n先序遍历二叉树结果为:";
	PreOrderTraverse(BT);

	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40843865/article/details/89221673