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)
基本上这个结构不是很好