首页 > 其他分享 >实验4:二叉树的基本操作

实验4:二叉树的基本操作

时间:2024-11-06 14:51:51浏览次数:3  
标签:head return cout tree 实验 二叉树 基本操作 ture data

c++解释: new相当于malloc()函数,其他没有区别!

点击查看代码
#include<iostream>
using namespace std;

struct tree {
	int data;
	tree* light, *ture;
};
int jie, shen,maxx;
//创建
tree* chu() {
	tree* head;
	head = new tree;
	cout << "请输入数值:\n";
	cin >> head->data;
	if (head->data == 0)
		return nullptr;
	jie++;
	cout << "请输入该"<<head->data<<"的左结点,无则输入 0 \n";
	head->light = chu();
	cout << "请输入该" << head->data << "的右结点,无则输入 0 \n";
	head->ture = chu();
	return head;
}
//前序
void printqian(tree* head) {
	if (head == nullptr) return;
	cout << head->data << ' ';
	printqian(head->light);
	printqian(head->ture);
}
//中序
void printzong(tree* head) {
	if (head == nullptr) return;
	printzong(head->light);
	cout << head->data << ' ';
	printzong(head->ture);
}
//后序
void printhou(tree* head) {
	if (head == nullptr) return;
	printhou(head->light);
	printhou(head->ture);
	cout << head->data << ' ';
}

void sheng(tree* head) {
	if (head == nullptr) return;
	shen++;
	maxx = max(maxx, shen);
	sheng(head->light);
	sheng(head->ture);
	shen--;
}

int mumo() {
    cout << "您可以进行一下操作:\n";
    cout << "1:建立新二叉树\n";
    cout << "2:前序输出二叉树\n";
    cout << "3:中序输出二叉树\n";
    cout << "4:后序输出二叉树\n";
	cout << "5:查看现二叉树节点树\n";
	cout << "6:查看深度\n";
    cout << "其他:退出\n";
    int k; cin >> k;
    return k;
}

int main() {
	tree* head=nullptr;
	while (true) {
		int k = mumo();
		if (k < 1 && k>6) break;
		switch (k) {
		case 1:
			head = chu();
			cout << "建立完成!\n";
			break;
		case 2:
			cout << "前序输出为:";
			printqian(head);
			cout << endl;
			break;
		case 3:
			cout << "中序输出为:";
			printzong(head);
			cout << endl;
			break;
		case 4:
			cout << "后序输出为:";
			printhou(head);
			cout << endl;
			break;
		case 5:
			cout <<"二叉树的节点有" << jie <<"个" << endl;
			break;
		case 6:
			maxx = -1;
			sheng(head);
			cout <<"该二叉树深度为:" << maxx << endl;
			break;
		}
	}
	return 0;
}

标签:head,return,cout,tree,实验,二叉树,基本操作,ture,data
From: https://www.cnblogs.com/liyutaocpp/p/18530164

相关文章

  • 实验四
    task1:源代码:#include<stdio.h>#defineN4#defineM2voidtest1(){intx[N]={1,9,8,4};inti;//输出数组x占用的内存字节数printf("sizeof(x)=%d\n",sizeof(x));//输出每个元素的地址、值for(i=0;i<N;++i)pr......
  • 20222408 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容1.1实验要求(1)对恶意代码样本进行识别文件类型、脱壳、字符串提取操作。(2)使用IDAPro静态或动态分析所给的exe文件,找到输出成功信息的方法。(3)分析恶意代码样本并撰写报告,回答问题。(4)对于Snort收集的蜜罐主机5天的网络数据源进行分析,回答问题。1.2学习内容恶意代码......
  • 代码随想录算法训练营第十六天|leetcode513.找树左下角的值、leetcode112.路径总和、l
    1leetcode513.找树左下角的值题目链接:513.找树左下角的值-力扣(LeetCode)文章链接:代码随想录视频链接:怎么找二叉树的左下角?递归中又带回溯了,怎么办?|LeetCode:513.找二叉树左下角的值_哔哩哔哩_bilibili思路:就是用一个东西存储result,使用后续遍历,如果遇到了最深的那一个值,就......
  • 20222414 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    一、实验内容1.恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件,......
  • 【算法】递归+深搜:106.从中序与后序遍历序列构造二叉树(medium)
    目录1、题目链接相似题目:2、题目3、解法函数头-----找出重复子问题函数体---解决子问题4、代码1、题目链接106.从中序与后序遍历序列构造二叉树(LeetCode)相似题目:105.从前序与中序遍历序列构造二叉树889.根据前序和后序遍历构造二叉树(LeetCode)2、题目3、解法......
  • 20222404 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1基本概念1.1恶意代码恶意代码(MaliciousCode)是指以技术炫耀/恶作剧,远程控制,窃取私密信息,盗用资源,拒绝服务/破坏等为目的,使计算机按照攻击者的意图运行以达到恶意目的的指令集合。类型包括计算机病毒、蠕虫、特洛伊木马、逻辑炸弹、系统后门、Rootkit、僵尸程序等。1.2......
  • 20222303 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    一、实验内容(一)恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件,......
  • 20222417 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容1.1恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件,对......
  • 实验三
    实验任务一:#pragmaonce#include<iostream>#include<string>usingstd::string;usingstd::cout;//按钮类classButton{public:Button(conststring&text);stringget_label()const;voidclick();private:stringlabel;};......
  • 实验3 类和对象_基础编程2
    Task1button.hpp1#pragmaonce23#include<iostream>4#include<string>56usingstd::string;7usingstd::cout;89//按钮类10classButton{11public:12Button(conststring&text);13stringget_label()const;......