Eu încerc să pună în aplicare copac Traversare precomandă s, folosind un randament de întoarcere, care returnează un IEnumerable
private IEnumerable<T> Preorder(Node<T> node)
{
while(node != null)
{
yield return node.Data;
yield return node.LeftChild.Data;
yield return node.RightChild.Data;
}
}
În acest caz, merge în buclă infinită și da, știu că trebuie să păstreze pendulare. Cum se poate face acest lucru?
În cazul în care LeftChild sau RightChild este nul, aruncă o excepție nulă. Cred că în acel moment am nevoie de randament pauză;
Presupun, inordine si postordine ar fi prea similare, orice idei?
Am versiunea Resursive, care funcționează bine.
public void PreOrderTraversal(Node<T> node)
{
if(node!=null)
{
Console.Write(node.Data);
}
if (node.LeftChild != null)
{
PreOrderTraversal(node.LeftChild);
}
if (node.RightChild != null)
{
PreOrderTraversal(node.RightChild);
}
}
Mulțumiri.













