Question: importjava.util. * ;publicclassRBT { publicNoderoot;publicRBT ( ) { } publicbooleanisRed ( Nodex ) { if ( x = = null ) { returnfalse; } else
importjava.util.;publicclassRBTpublicNoderoot;publicRBTpublicbooleanisRedNodexifxnullreturnfalse;elsereturnxgetColorNode.Color.RED;publicbooleanisEmptyreturnthisrootnull;publicbooleancontainsintxreturnthisnodeContainsDatathisroot,x;privatebooleannodeContainsDataNoderintxwhiletrueifrnullifrgetDataxrrgetLeft;continue;ifrgetDataxrrgetRight;continue;returntrue;returnfalse;publicListserializeTreereturnthisserializeTreethisroot;privateListserializeTreeNoderifrnullreturnnewLinkedList;elseintdatargetData;Listleftthis.serializeTreergetLeft;Listrightthis.serializeTreergetRight;left.adddata;left.addAllright;returnleft;publicintmaxHeightreturnthismaxHeightthisroot;privateintmaxHeightNoderreturnrnull?:Math.maxthismaxHeightrgetLeftthis.maxHeightrgetRight;publicvoidinsertintxthisrootthis.nodeInsertDatathisroot,x;this.root.setColorNodeColor.BLACK;privateNodenodeInsertDataNoderintxifrnullreturnnewNodexNode.Color.RED;elseifxrgetDatarsetRightthisnodeInsertDatargetRightx;ifrgetRightnullrgetRightsetParentr;ifthisisRedrgetRight&&this.isRedrgetLeftrthis.rotateLeftr;ifthisisRedrgetLeft&&rgetLeftnull&&this.isRedrgetLeftgetLeftrthis.rotateRightr;ifthisisRedrgetLeft&&this.isRedrgetRightthisflipColorsr;returnr;privateNoderotateRightNodehNodexhgetLeft;hsetLeftxgetRight;ifxgetRightnullxgetRightsetParenth;xsetRighth;xsetColorhgetColor;hsetColorNodeColor.RED;xsetParenthgetParent;hsetParentx;returnx;privateNoderotateLeftNodehNodexhgetRight;hsetRightxgetLeft;ifxgetLeftnullxgetLeftsetParenth;xsetLefth;xsetColorhgetColor;hsetColorNodeColor.RED;xsetParenthgetParent;hsetParentx;returnx;privatevoidflipColorsNodehhsetColorNodeColor.RED;ifhgetLeftnullhgetLeftsetColorNodeColor.BLACK;ifhgetRightnullhgetRightsetColorNodeColor.BLACK;publicNodegetRootreturnthisroot;
importorg.junit.jupiter.api.Test;importstaticorg.junit.jupiter.api.Assertions.;importjava.util.List;@version@authorDanielWilsondancodesonlinepublicclassRBTTest@TestpublicvoidtestMaxHeightRBTtreenewRBT;tree.insert;assertEqualstree.maxHeight;@TestpublicvoidtestMaxHeightDuplicatesRBTtreenewRBT;tree.insert;tree.insert;assertEqualstree.maxHeight;@TestpublicvoidtestMaxHeightRBTtreenewRBT;tree.insert;tree.insert;assertEqualstree.maxHeight;Thetreeshouldinsertlikearegulartree@TestpublicvoidtestTreeInsertRBTrbtnewRBT;rbtinsert;rbtinsert;rbtinsert;assertEqualsNodeColor.BLACK,rbtroot.getColor;assertEqualsNodeColor.RED,rbtroot.getLeftgetColor;assertEqualsNodeColor.RED,rbtroot.getRightgetColor;Case:Therootisalwaysblack@TestpublicvoidtestInsertionCaseRBTrbtnewRBT;rbtinsert;assertEqualsNodeColor.BLACK,rbtroot.getColor;Case:Xuncleisred@TestpublicvoidtestInsertionCaseLeftRBTrbtnewRBT;rbtinsert;rbtinsert;rbtinsert;rbtinsert;assertEqualsNodeColor.BLACK,rbtroot.getColor;assertEqualsNodeColor.BLACK,rbtroot.getLeftgetColor;assertEqualsNodeColor.BLACK,rbtroot.getRightgetColor;assertEqualsNodeColor.RED,rbtroot.getLeftgetLeftgetColor;assertEqualsnullrbtroot.getRightgetLeft;Case:Xuncleisred@TestpublicvoidtestInsertionCaseRightRBTrbtnewRBT;rbtinsert;rbtinsert;rbtinsert;rbtinsert;assertEqualsNodeColor.BLACK,rbtroot.getColor;assertEqualsNodeColor.BLACK,rbtroot.getLeftgetColor;assertEqualsNodeColor.BLACK,rbtroot.getRightgetColor;assertEqualsNodeColor.RED,rbtroot.getRightgetRightgetColor;assertEqualsnullrbtroot.getRightgetLeft;
TheNodeclassrepresentsanodeinaredblacktree.publicclassNodeAColoriseitherREDorBLACKpublicenumColorREDBLACKprivateColorcolor;privateintdata;privateNodeleft;privateNoderight;privateNodeparent;CreateanewnodegivenanintandacolorSetstheleftandrightsubtreestonull.@paramdataThevaluestoredinthenode@paramcolorTheinitialcolorofthenodepublicNodeintdataColorcolorleftnull;rightnull;parentnull;this.colorcolor;this.datadata;Createanewnodegivenanintacolor,theleftandrightsubtrees,andtheparent.@paramdataThevaluestoredinthenode@paramcolorTheinitialcolorofthenode@paramleftTheleftsubtree@paramright
I keep getting NullpointerExceptions for testInsertionCaseRight not all code because i couldnt include it all
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
