将多叉树转为二叉树:
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; struct list { int l; int r; }node[2001]; void init() { int i; scanf("%d%d",&n,&m); memset(vis,-1,sizeof(vis)); for(i=0;i<=n;i++) { node[i].l=node[i].r=0; } for(i=1;i<=n;i++)//边输入,边转化 { int a,b; scanf("%d%d",&a,&b); node[b].r=node[a].l; node[a].l=b; } } int main() { init(); return 0; }
原文:http://blog.csdn.net/rowanhaoa/article/details/19805379