小编kni*_*ght的帖子

如何为二进制搜索树编写GetEnumerator()?

我有一个BinaryTree类和一个BinaryTreeNode用于保存节点,我已经创建了树并为它编写了预订,后序和有序方法.
但我不知道如何IEnumerator<T>为它写(我只想按顺序使用GetEnumerator()方法).问题是返回类型的inOrder方法是void.我想做它IEnumerator<T>而不是MessageBox返回数据.

我怎样才能做到这一点?

public void PreOrder(BinaryTreeNode<T> node)
{
    if (node != null)
    {
        MessageBox.Show(node.Value.ToString());
        PreOrder(node.Left);
        PreOrder(node.Right);
    }
}

public void PostOrder(BinaryTreeNode<T> node)
{
    if (node != null)
    {
        PostOrder(node.Left);
        PostOrder(node.Right);
        MessageBox.Show(node.Value.ToString());
    }
}

public void InOrder(BinaryTreeNode<T> node)
{
    if (node != null)
    {
        InOrder(node.Left);
        MessageBox.Show(node.Value.ToString());
        InOrder(node.Right);
    }
}

public void Clear()
{
    root = null;
    Count = 0;
}

public …
Run Code Online (Sandbox Code Playgroud)

c# generics algorithm binary-search-tree data-structures

2
推荐指数
1
解决办法
1554
查看次数