欢迎光临
我们一直在努力

数据结构与算法(C#实现)系列—演示篇(三)-.NET教程,C#语言

建站超值云服务器,限时71元/月

数据结构与算法(c#实现)系列—树(二)

heavenkiller(原创)

public class inorder:iprepostvisitor

{

private ivisitor visitor;

public inorder(ivisitor _vis){visitor=_vis;}

#region iprepostvisitor 成员

public void previsit(object _obj)

{

// todo: 添加 inorder.previsit 实现

}

public void visit(object _obj)

{

// todo: 添加 inorder.visit 实现

this.visitor.visit(_obj);

}

public void postvisit(object _obj)

{

// todo: 添加 inorder.postvisitor 实现

}

#endregion

}

public class postorder:iprepostvisitor

{

private ivisitor visitor;

public postorder(ivisitor _vis){visitor=_vis;}

#region iprepostvisitor 成员

public void previsit(object _obj)

{

// todo: 添加 postorder.previsit 实现

}

public void visit(object _obj)

{

// todo: 添加 postorder.visit 实现

}

public void postvisit(object _obj)

{

// todo: 添加 postorder.postvisitor 实现

this.visitor.visit(_obj);

}

#endregion

}

protected class enumvisitor:ivisitor

{

queue thisqueue;

public enumvisitor(queue _que)

{

this.thisqueue=_que;

}

#region ivisitor 成员

public void visit(object _obj)

{

// todo: 添加 enumvisitor.visit 实现

this.thisqueue.enqueue(_obj);

}

#endregion

}

#region ienumerable 成员

public ienumerator getenumerator()

{

// todo: 添加 tree.getenumerator 实现

enumvisitor vis=new enumvisitor(this.keyqueue);

switch (this.traversaltype)

{

case traversaltype.breadth:

breadthfirsttraversal(vis);

break;

case traversaltype.predepth:

preorder previs=new preorder(vis);

depthfirsttraversal(previs);

break;

case traversaltype.indepth:

inorder invis=new inorder(vis);

depthfirsttraversal(invis);

break;

case traversaltype.postdepth:

postorder postvis=new postorder(vis);

depthfirsttraversal(postvis);

break;

default:

console.writeline("warning:please set a travel type first!–void settraversaltype(traversaltype _type) ");

//throw new exception("warning:please set a travel type first!");//if not set a type, a exception will happen

break;

}

return this.keyqueue.getenumerator();

}

#endregion

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 数据结构与算法(C#实现)系列—演示篇(三)-.NET教程,C#语言
分享到: 更多 (0)