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
처럼 STH 될 것입니다. "-" 나도 몰라 내가 여기에 약간의 도움이 정말 될 것 잘못하고있는 무슨
내가 원하는 출력
A -B -C --D --E
이다 그래서 나는 기본적으로 트리의 수준을 보여주고 싶은 고맙습니다.
표시된 입력에 대해 실제 출력은 무엇입니까? 디버거에서 한 줄씩 코드를 단계별로 실행 해 보았습니까? –
실제로 코드를 실행할 때 출력이 없습니다 ... 그냥 멈 춥니 다. – Redrock