树的后根遍历

树的后根遍历(孩子链表法)

题目描述

根据树的孩子链表表示法构建一棵树,并输出树的后根遍历

下标位置从0开始

输入

第一行输入两个参数,第一个参数n表示树有n个结点,第二个参数r表示根结点的数组下标

接着n行,每行先输入一个结点的数值(用单个字母表示),再输入结点的孩子的下标,最后以-1结尾

如果该结点没有孩子,则一行只输入结点的数值和-1

输出

只有一行输出,树的后根遍历结果

输入

10 4
A 3 5 -1
B -1
C 6 -1
D -1
R 0 1 2 -1
E -1
F 7 8 9 -1
G -1
H -1
K -1

 

样例输出

DEABGHKFCR
 

//从左往右打开节点,若为-1,则输出
#include <iostream>
using namespace std;

struct node {
	char c;
	int child[10];
};

void Print(node N[], int r) {
	for (int i = 0; N[r].child[i] != -1; i++)
		Print(N, N[r].child[i]);

	cout << N[r].c;
}


int main() {
	int n, m;
	cin >> n >> m;
	node N[n];

	for (int i = 0; i < n; i++) {
		cin >> N[i].c;

		for (int j = 0;; j++) {
			cin >> N[i].child[j];

			if (N[i].child[j] == -1)
				break;
		}
	}

	Print(N, m);

}

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值