使用系统; 使用System.Collections.Generic; 使用来; 使用text; 使用System.Threading.Tasks; 使用System.Collections.Generic; 名称空间ConsoleApplication4 { 类项目 { 静态void Main (string [] args) { personalInfo p1=new personalInfo (“1”,“1”); personalInfo p2=new personalInfo (“2”,“2”); personalInfo p3=new personalInfo (“3”,“3”); personalInfo p4=new personalInfo (" ", " "); personalInfo奔跑=new personalInfo (“31”、“31”); personalInfo第9 -=new personalInfo (“32”,“32”); personalInfo p33=new personalInfo (" ", " "); personalInfo p321=new personalInfo (" ", " "); personalInfo p311=new personalInfo (" ", " "); personalInfo p21=new personalInfo (" ", " "); personalInfo侯=new personalInfo(“11”、“十一”); personalInfo p12=new personalInfo (" ", " "); personalInfo p111=new personalInfo (" ", " "); 列表=new System.Collections.Generic.List (); list.AddRange(新personalInfo [] {p1, p2, p3, p4、奔跑、第9,p33, p321, p311, p21,侯,p12, p111}); JiaPu j=new JiaPu(列表); 注意phead=零; int指数=j.CreateTree (ref phead 0 13); } 公共struct personalInfo { 公共personalInfo(字符串名称字符串Id) { this.name=名称; this.Id=Id; } 公共字符串名称; 公共字符串Id;//Id为空或空,这意味着,没有人。 } 公开课笔记 { 公共personalInfo数据; 公众注意lChild rChild; } 公开课JiaPu { 列表 的人;//整数指数=0; 公共JiaPu ( 人员名单) { this.persons=人; } 公共int CreateTree (ref注意nNode, int指数,int长度) { 如果(指数>=长度) { nNode=零; 返回索引; } 如果(string.IsNullOrEmpty(人(指数).Id)) { nNode=零; 返回索引; } nNode=new注意(); nNode.data=人(指数); 指数=CreateTree (ref nNode.lChild、+ +指数、长度); 指数=CreateTree (ref nNode.rChild、+ +指数、长度); 返回索引; } } } }