Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะกลับแผนผังการค้นหาแบบไบนารีโดยใช้การเรียกซ้ำใน C # ได้อย่างไร


ในการสลับแผนผังการค้นหาแบบไบนารี เราเรียกเมธอด InvertABinarySearchTree ซึ่งรับโหนดเป็นพารามิเตอร์ หากโหนดเป็น null ให้คืนค่า null หากโหนดไม่เป็น null เราจะเรียก InvertABinarySearchTree ซ้ำๆ โดยส่งค่าลูกซ้ายและขวา และกำหนดค่าลูกด้านขวาให้กับลูกด้านซ้ายและค่าลูกด้านซ้ายให้กับลูกด้านขวา ผลลัพธ์สุดท้ายจะประกอบด้วยต้นไม้ซึ่งจะเป็นภาพสะท้อนของมันเอง

ตัวอย่าง

public class TreesPgm{
   public class Node{
      public int Value;
      public Node LeftChild;
      public Node RightChild;
      public Node(int value){
         this.Value = value;
      }  
      public override String ToString(){
         return "Node=" + Value;
      }
   }
   public Node InvertABinarySearchTree(Node node){
      if (node == null){
         return null;
      }
      Node left = InvertABinarySearchTree(node.LeftChild);
      Node right = InvertABinarySearchTree(node.RightChild);
      node.LeftChild = right;
      node.RightChild = left;
      return root;
   }
}

อินพุต

   1
  3 2

ผลลัพธ์

   1
  2 3