mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.0 KiB
1.0 KiB
btreetransplant
Instructions
In order to move subtrees around within the binary search tree, write a function, BTreeTransplant
, which replaces the subtree started by node with the node called rplc
in the tree given by root.
This function must have the following signature.
Expected function
func BTreeTransplant(root, node, rplc *TreeNode) *TreeNode {
}
Usage
Here is a possible program to test your function :
package main
import (
"fmt"
piscine ".."
)
func main() {
root := &piscine.TreeNode{Data: "4"}
piscine.BTreeInsertData(root, "1")
piscine.BTreeInsertData(root, "7")
piscine.BTreeInsertData(root, "5")
node := piscine.BTreeSearchItem(root, "1")
replacement := &piscine.TreeNode{Data: "3"}
root = piscine.BTreeTransplant(root, node, replacement)
piscine.BTreeApplyInorder(root, fmt.Println)
}
And its output :
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
3
4
5
7
student@ubuntu:~/student/test$