私の知る限り、私のプログラムはになるはずですが、私はrefというキーワードでは問題があります。 Insert()メソッドを使用する予定はありません。しかし、エラーが発生するたびにトラバースメソッドを使用しようとするのは苦労しています。私はおそらく私の主な方法を台無しにしたことを知っているが、それは実験し、それを働かそうとしているからだ。私はGetメソッドとSetterメソッドを持つNodeClassを持っていますが、問題は基本的にrefキーワードです。私は何が欠けていますか?文字列を追加しました。エラーが発生しました。バッファを使用しようとしましたが、エラーが発生します。C# - バイナリツリーの問題
BinaryTreeクラス -
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