社区讨论

玄1关,求助!

B3644【模板】拓扑排序 / 家谱树参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lwd4dfne
此快照首次捕获于
2024/05/19 13:51
2 年前
此快照最后确认于
2024/05/19 16:04
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
struct treenode{ //建树,此部分无误
	int data;
	treenode* parent;
	vector<treenode*> child;
	treenode(int d) {
		data=d;
		parent=NULL;
		child=vector<treenode*>();
	}
};
void dfs(treenode* root) {   //深搜,此部分无误
	if(root==NULL)
		return ;
	cout<<root->data<<" ";
	for(int i=0;i<root->child.size();i++)
		dfs(root->child[i]);
}
int n,i,A,B;
int main() {
 	treenode* node[25]={NULL};
	scanf("%d",&n);
	int k,minn=INT_MAX;
	for(i=1;i<=n;i++) {
		scanf("%d",&A);
		int cnt=0;
		while(A!=0) {
			cnt++;
			node[i]=new treenode(i);
			node[A]->parent=node[i];
			node[i]->child.push_back(node[A]);
			scanf("%d",&A);
		}
		if(cnt>minn) {
			minn=cnt;
			k=i;
		}  //记录哪个节点子节点最多
	}
	dfs(node[k]);
}
 
为啥程序输入不了?

回复

2 条回复,欢迎继续交流。

正在加载回复...