日期:2014-05-18  浏览次数:20814 次

C#算法
第一题:
using System;
using System.Collections;
using System.Collections.Generic;
namespace Zgsoft.Collections.Generic
{
  //说明:
  //以下为一个树的节点的定义,假定:除了需要填写的代码外,其他属性和方法均已实现。
  //要求:写出一个树节点的前序遍历和后序遍历代码。
  public class ZgTreeNode<T> : IEnumerable<T>, IEnumerable
  {
  public ZgTreeNode(T value); //构造函数
  public int Count { get; } //孩子数目
  public ZgTreeNode<T> FirstChild { get; } //第一个孩子
  public ZgTreeNode<T> LastChild { get; } //最后一个孩子
  public ZgTreeNode<T> NextSibling { get; } //弟弟
  public ZgTreeNode<T> PreviousSibling { get; } //哥哥
  public ZgTreeNode<T> Parent { get; } //父亲
  public T Value { get; } //节点存储的对象

  public ZgTreeNode<T> AddChild(T value); //增加孩子
  public ZgTreeNode<T> AddSibling(ZgTreeNode<T> newNode); //增加弟弟
  public void PreorderTraveral(Action<T> action) //前序遍历
  {
  /* 说明:前序遍历的含义:首先执行自身,然后顺序执行孩子(第一个,第二个...),然后执行孩子的孩子,依次类推。 在这里写上相应的代码*/
  }
  public void PostorderTraveral(Action<T> action) //后序遍历
  {
  /*****************************************************
  说明:后序遍历的含义:首先“从小到大”执行后代,然后执行自身。在这里写上相应的代码
  *******************************************************/
  }
  }
}
 


------解决方案--------------------
你说你要什么样的控件吧,大家帮你推荐推荐
另外你这个少个最重要的 孩子

另外只需要一个增加方法即可,不需要增加孩子什么的

只要一个带参数的 (孩子object,父节点object)

基本上这个结构不是很好