社区讨论
玄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 条回复,欢迎继续交流。
正在加载回复...