據我所知,我的程序應該工作,但是,我在編號關鍵字有困難。我們不希望使用Insert()方法。但是,我每次遇到錯誤時都很難使用遍歷方法,這是關於參數丟失或其他問題的參考。我知道我可能已經搞亂了我的主要方法,但是這是由於嘗試並試圖使其工作。我確實有一個帶有Get和Setter方法的NodeClass,但是,問題本質上就是ref關鍵字。我錯過了什麼?我添加了字符串我得到一個錯誤,我試圖使用緩衝區我得到一個錯誤。C# - 二叉樹問題
二叉樹講座
class BinTree<T> where T : IComparable
{
private Node<T> root;
public BinTree() //creates an empty tree
{
root = null;
}
public BinTree(Node<T> node) //creates a tree with node as the root
{
root = node;
}
public void InOrder(ref string buffer)
{
inOrder(root, ref buffer);
}
private void inOrder(Node<T> tree, ref string buffer)
{
if (tree != null)
{
inOrder(tree.Left, ref buffer);
buffer += tree.Data.ToString() + ",";
inOrder(tree.Right, ref buffer);
}
}
public void Preorder(ref string buffer)
{
PreOrder(root, ref buffer);
}
public void PreOrder(Node<T> tree, ref string buffer)
{
if (tree != null)
{
buffer += tree.Data.ToString() + ",";
PreOrder(tree.Left, ref buffer);
PreOrder(tree.Right, ref buffer);
}
}
public void postOrder(ref string buffer)
{
PostOrder(root, ref buffer);
}
public void PostOrder(Node<T> tree, ref string buffer)
{
if (tree != null)
{
PostOrder(tree.Left, ref buffer);
PostOrder(tree.Right, ref buffer);
buffer += tree.Data.ToString() + ",";
}
}
}
計劃講座
class Program
{
static void Main(string[] args)
{
BinTree<int> tree = new BinTree<int>();
Node<int> root = new Node<int>(6);
root.Left = new Node<int>(15);
root.Left.Right = new Node<int>(654);
tree.InOrder(ref , root.Data);
System.Console.WriteLine();
Console.ReadLine();
}
}
可能有人可能會幫助我嗎?謝謝。
如果事情很明顯,請提前道歉。
預期產量是15,654,6,?這是我清理了一下之後所得到的。 – jrbeverly
這是正確的。我正在使用遍歷方法; inOrder,PreOrder和PostOrder。 :) – JavaScriptGrasshopper
這是我目前的工作:https://dotnetfiddle.net/9glXXY – jrbeverly