最最最简单的二叉树实现-C++
发布日期:2021-05-08 04:53:55 浏览次数:22 分类:原创文章

本文共 1389 字,大约阅读时间需要 4 分钟。

我就不信你能找到比这更简单的,简单只是为了了解二叉树的思想,当然,以后会变难的。(手动狗头)
emm,英文水平还有待提高。

//最简单二叉树实现//通过先序递归生成,如果结束了就按0,没有就输入数字//通过递归实现前序,中序,后序遍历#include <iostream>#include <cstring>using namespace std;struct maintree {   	//树的一个结构体	int val;	struct maintree* lson, * rson; //和链表有些相似};class Btree {   	//类主要是实现二叉树的一个封装--可以理解为有一个花园,里面放着一棵树和许多工具public:	maintree* create_note(int level, string pos);//栽树,注意返回类型	void PreLook(maintree* t);	void MidLook(maintree* t);	void FinLook(maintree* t);	maintree* root;};maintree* Btree:: create_note(int level, string pos) {   	int data;	maintree* node = new maintree;	cout << "Please enter data:level " << level << " " << pos << endl;	cin >> data;	if (data == 0) return NULL;	node->val = data;	node->lson = create_note(level + 1, "left");	node->rson = create_note(level + 1, "right");	return node;}void Btree:: PreLook(maintree* t) {   	if (t) {   		cout << t->val << endl;		PreLook(t->lson);		PreLook(t->rson);	}}void Btree:: MidLook(maintree* t) {   	if (t) {   		MidLook(t->lson);		cout << t->val << endl;		MidLook(t->rson);	}}void Btree:: FinLook(maintree* t) {   	if (t) {   		FinLook(t->lson);		FinLook(t->rson);		cout << t->val << endl;	}}int main(int argc, char* argv[]){   	Btree tree;	tree.root = tree.create_note(1, "root");	cout << "我是前序查找\n";	tree.PreLook(tree.root);	cout << "我是中序查找\n";	tree.MidLook(tree.root);	cout << "我是后序查找\n";	tree.FinLook(tree.root);	return 0;}
上一篇:golang http 请求
下一篇:Processes, threads and goroutines

发表评论

最新留言

不错!
[***.144.177.141]2025年03月22日 23时56分51秒