मैं उपज वापसी जो एक IEnumerable देता है का उपयोग कर पेड़ Traversal Preorder को लागू करने की कोशिश कर रहा हूँ
private IEnumerable<T> Preorder(Node<T> node)
{
while(node != null)
{
yield return node.Data;
yield return node.LeftChild.Data;
yield return node.RightChild.Data;
}
}
इस मामले में, यह अनंत लूप में चला जाता है और हाँ मुझे पता है कि मैं traversing रखने की जरूरत है। यह कैसे किया जा सकता है?
LeftChild या RightChild रिक्त है, तो एक अशक्त अपवाद फेंकता है। मैं उस समय मैं ब्रेक उपज की जरूरत है पर लगता है;
मुझे लगता है, inorder और क्रंमोत्तर भी समान होगा, किसी भी विचार?
मैं Resursive संस्करण, कि अच्छी तरह से काम करता है।
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);
}
}
धन्यवाद।













