这是之前的一次数据结构实验,按老师的想法应该是老老实实建树然后输出,但由于本人编程能力孱弱(非计算机专业 程序设计课时数有限),对于建树这件事有一定的抵触,因此想了一点歪门邪道完成这一任务  代码纯纯屎山 但是这个想法我觉得还挺有意思 希望大家指教

```cpp
#include<iostream>
using namespace std;
int preR[20], preL[20];//存储先序的双标记
int CL[3][20], cl = 0;
int CR[3][20], cr = 0;
char C[3][20];//存储层次的双标记和值
int c0 = 0;
int cengci[3] = { 0,0,0 };//对各层次的数据个数进行计数
char  pre[20], C1[20], C2[20], C3[20];
int main()
{
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 20; j++)
		{
			CL[i][j] = 2;
		}
	}
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 20; j++)
		{
			CR[i][j] = 2;
		}
	}//将双标记数组赋一个非0和1的值
	int i1 = 0, i2 = 0, i3 = 0;
	int j = 0;
	int cnt = 1;
	while (cin >> preR[i1++])
	{
		if (cin.get() == '\n')
			break;
		else
			cnt++;
	}
	while (cin >> pre[i2++])
	{
		if (cin.get() == '\n')
			break;
	}
	while (cin >> preL[i3++])
	{
		if (cin.get() == '\n')
			break;
	}//输入带双标记的先根次序

	int cengcijishu = 0;
	for (int i = 0; i < cnt; i++)
	{
		if (preL[i] == 1 && preR[i] == 0)//左1右0,层次不变
		{
			cengci[cengcijishu]++;
			CL[cengcijishu][cl] = preL[i];
			cl++;
			CR[cengcijishu][cr] = preR[i];
			cr++;
			C[cengcijishu][c0] = pre[i];
			c0++;
		}
		if (preL[i] == 0)//左0,层次+1
		{
			cengci[cengcijishu]++;
			CL[cengcijishu][cl] = preL[i];
			cl++;
			CR[cengcijishu][cr] = preR[i];
			cr++;
			C[cengcijishu][c0] = pre[i];
			c0++;
			cengcijishu++;

		}
		if (preR[i] == 1 && preL[i] == 1)//左1右1,层次-1
		{
			cengci[cengcijishu]++;
			CL[cengcijishu][cl] = preL[i];
			cl++;
			CR[cengcijishu][cr] = preR[i];
			cr++;
			C[cengcijishu][c0] = pre[i];
			c0++;
			cengcijishu--;
		}

	}
	cout << endl;
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 20; j++)
		{
			if (CL[i][j] == 0 || CL[i][j] == 1)
			{
				cout << CL[i][j] << " ";
			}
		}
	}
	cout << endl;
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 20; j++)
		{
			if (C[i][j] != NULL)
			{
				cout << C[i][j] << " ";
			}
		}
	}
	cout << endl;
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 20; j++)
		{
			if (CR[i][j] == 0 || CR[i][j] == 1)
			{
				cout << CR[i][j] << " ";
			}
		}
	}
	return 0;
}
```

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐