根据带双标记的先根次序表示输出带双标记的层次次序表示
这是之前的一次数据结构实验,按老师的想法应该是老老实实建树然后输出,但由于本人编程能力孱弱,对于建树这件事有一定的抵触,因此想了一点歪门邪道完成这一任务```cpp#include<iostream>using namespace std;int preR[20], preL[20];//存储先序的双标记int CL[3][20], cl = 0;int CR[3][20], cr =
·
这是之前的一次数据结构实验,按老师的想法应该是老老实实建树然后输出,但由于本人编程能力孱弱(非计算机专业 程序设计课时数有限),对于建树这件事有一定的抵触,因此想了一点歪门邪道完成这一任务 代码纯纯屎山 但是这个想法我觉得还挺有意思 希望大家指教
```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;
}
```

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