Coursehero USA logo
  • My account
  • Order now
Order Now
Homework Help

Java homework help | Computer Science homework help

2 min read
Posted on 
January 23rd, 2023
Home Homework Help Java homework help | Computer Science homework help

//

// LLRB — L(eft)-L(eaning) R(ed)-B(lack) BST

// 

// This class stores a set of integer keys using a left-leaning red-black BST

//

// HOMEWORK in this file is to implement:

//

// 1) public void insert()

// 2) public boolean containsRightRedEdge()

// 3) public boolean containsConsecutiveLeftRedEdges()

// 4) public int countBlackEdgesOnLeftmostPath()

// 5) public boolean sameBlackEdgesCountOnAllPaths(int count)

//

// As BONUS, there is one additional method to implement

//

// 1) public void fixLLRB()

//

 

package hw4;

 

public class LLRB {

    private static final boolean RED   = true;

    private static final boolean BLACK = false;

    

    public Node root;

 

public class Node {

public int key;

public boolean color;

public Node left, right;

 

public Node(int key, boolean color) {

this.key = key;

this.color = color;

}

}

 

// Constructor for LLRB

public LLRB() {

}

 

// Is parent link for node x red? false if x is null

private boolean isRed(Node x) {

if (x == null) return false;

return x.color == RED;

}

 

// Inserts a key without fixing the tree

public void bstInsert(int key) {

root = bstInsert(root, key);

}

 

// Recursive helper method for bstInsert

private Node bstInsert(Node x, int key) {

if (x == null) return new Node(key, RED);

if (key < x.key) x.left  = bstInsert(x.left, key);

else if (key > x.key) x.right = bstInsert(x.right, key);

return x;

}

 

// Inserts a key fixing the red-black tree property

public void insert(int key) {

// TODO : complete this method

}

 

// Checks whether the tree contains a red right edge

public boolean containsRightRedEdge() {

// TODO : complete this method

return false;

}

 

// Checks whether the tree contains two left red edges in a row

public boolean containsConsecutiveLeftRedEdges() {

// TODO : complete this method

return false;

}

 

// Returns the maximum number of black edges (nodes) on any path from root to null

public int maxBlackEdgesDepth() {

// TODO : complete this method

return 0;

}

 

// Returns the minimum number of black edges (nodes) on any path from root to null

public int minBlackEdgesDepth() {

// TODO : complete this method

return 0;

}

 

// Checks whether the BST is a valid left leaning red-black tree

public boolean isValidLLRB() {

return (maxBlackEdgesDepth() == minBlackEdgesDepth() && 

!containsRightRedEdge() &&

!containsConsecutiveLeftRedEdges());

}

    

// Fixes the red-black tree if there is something to fix

public void fixLLRB() {

// TODO : complete this method

}

}

Order an Essay Now & Get These Features For Free:

Turnitin Report

Formatting

Title Page

Citation

Outline

Place an Order
Share
Tweet
Share
Tweet
Calculate the price
Pages (275 words)
$0.00
Coursehero USA
Company
Legal
How Our Service is Used:
Coursehero USA essays are NOT intended to be forwarded as finalized work as it is only strictly meant to be used for research and study purposes. Coursehero USA does not endorse or condone any type of plagiarism.
Subscribe
No Spam
© 2023 Coursehero USA. All rights reserved.
Coursehero USA will be listed as ‘Coursehero USA’ on your bank statement.