树形结构 —— 树与二叉树 —— 树的数据生成器
为方便测试数据,给出一个树的数据生成器。
树的结点为 1~10 个,边权为 1~100,各点编号随机化
struct Edge {
int x, y;
int dis;
} edge[N];
int n,edgeTot;
int tot, x[N], y[N], dis[N];
int id[N], father[N];
int Find(int x) { return father[x] == x ? x : Find(father[x]); }
int main() {
srand(time(0));
n = rand() % 10 + 1;
printf("%d\n", n);
for (int i = 1; i <= n; ++i) {
for (int j = i + 1; j <= n; ++j) {
x[++tot] = i;
y[tot] = j;
dis[tot] = rand() % 100 + 1;
}
}
for (int i = 1; i <= tot; ++i){
id[i] = i;
father[i] = i;
}
random_shuffle(id + 1, id + tot + 1);
for (int i = 1; i <= tot; ++i) {
int pos = id[i];
int fx = Find(x[pos]);
int fy = Find(y[pos]);
if (fx == fy)
continue;
father[fy] = fx;
edge[++edgeTot].x = x[pos];
edge[edgeTot].y = y[pos];
edge[edgeTot].dis = dis[pos];
if (edgeTot == n - 1)
break;
}
for ( int i = 1; i <= edgeTot; i++)
printf("%d %d %d\n", edge[i].x, edge[i].y, edge[i].dis);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现