0
#include <iostream>
using namespace std;
char a[52];
struct node {
char var;
node* parent;
node() {
parent = NULL;
}
};
node n[26];
void printLevel(node b[],int k) {
if (b[k].parent == NULL) {
cout << b[k].var << endl;
}
else {
cout << "-";
printLevel(b[k].parent, k);
}
}
int main() {
int num;
cin >> num;
for (int i = 0; i < num; i++) {
cin >> a[i];
}
for (int i = 0; i < num; i++) {
cout << a[i];
}
for (int i = 0; i < (num/2) + 1; i++) {
n[i].var = 'A' + i;
}
for (int i = 1; i < num; i + 2) {
int parent;
int temp;
for (int j = 0; j < (num/2)+1; j++) {
if (n[j].var == a[i]) {
temp = a[i - 1];
parent = j;
}
}
for (int k = 0; k < (num/2) + 1; k++) {
if (n[k].var == temp) {
n[parent].parent = &n[k];
}
}
}
for (int i = 0; i < (num/2) + 1; i++)
{
printLevel(n, i);
}
return 0;
}
這是我有的代碼。輸入將某物像試圖做一個樹算法
8 A B A C B D B E
,其中第一行是多少我輸入想要和第二行是 奇數是父節點,和偶數號碼的子節點之前的奇數。
,我想輸出是
A -B -C --D --E
所以我基本上要顯示與樹的水平「 - 」 我不知道我在做什麼錯在這裏一些幫助將是非常讚賞。
對於顯示的輸入,* actual *輸出是什麼?你有沒有試過在調試器中逐行執行代碼? –
當我運行代碼時,實際上沒有輸出......它只是停止 – Redrock