Rviw: Rdix sor vo Rdix::SorMgr(isr& i, osr& o) 1. Dclr lis L 2. Rd h ifirs i sr i io lis L. Us br fucio TilIsr o pu h ifirs i h lis. 3. Dclr igr p. Vribl p is h chrcr posiio h is usd o slc h buck whr ifir is isrd 4. Dclr vribl lgh d iiiliz i o o lss h h lgh of h logs ifir i h lis. 5. for p=lgh dowo 0 do BuckSor(L,p); 6. Wri lis l oupu sr o. vo Rdix::BuckSor(Lis& L, i p) 1. whil lis L is o py do 1.1. Us br fucio HdRov o rov l fro h of lis L. 1.2. if h lgh of h ifir i l is shorr h posiio p h 1.2.1. us br fucio TilIsr o ppd l o h lis for h lph buck 1.3. ls 1.3.1. us br fucio TilIsr o ppd l o h lis for h buck whos idx is giv by h igr cod h corrspods h p h lr of h ifir i l. 2. Us br fucio joi o joi ll h bucks o lis L. Dfiiios: 1. : Th of h lis pois o h olds l o h lis. 2. : Th of h lis pois o h ws l o h lis. Rquirs: 1. r crd by ppdig ls o i oo h of h lis. Cll h oprio of ppdig l TilIsr. 2. Th lis of usord ifirs is procssd o l i srig wih h d ovig o h. s r rovd fro h lis i h ordr discussd. Cll h oprio HdRov. 3. Th liss h for h bucks r joid. Th coposi lis rplcs h origil lis h ws spryd o h bucks d is ow rordrd by joiig h liss oghr. Cll h oprio Joi. Figur 1. Digr of l. sruc { ; ; ( k):(0) { =w chr[srl(k)+1]; srcpy(,k); } ~() { if () dl[] ; } } Figur 2. C++ Dclrio for. 1
Figur 3. Digr of lis. clss Lis { ; ; vo Kill( ); public: Lis(); ~Lis(); bool IsEpy(vo); HdRov(vo); vo TilIsr( ); i Logs(vo); vo Sc(isr& i); vo Pri(osr& o, il,i ); vo Joi(Lis& L); }; Figur 4. clss lis. 2
Mbr vo Kill(l* ) Lis() ~Lis() bool IsEpy(vo) HdRov(vo) vo TilIsr( ) i Logs(vo) vo Sc(isr& i) vo Pri (osr& o, il,i ) vo Joi(Lis& L) Dscripio Mbr pois o h olds l o h lis. Mbr pois o h firs l pu o h lis. s r likd fro o d rid h. Th poir o h l i h l h is NULL. Mbr pois o h ws l o h lis. Mbr pois o h ls l pu o h lis. Mbr fucio is clld by h dsrucor ~Lis(). Mbr fucio Kill dls ll ls h ri o h lis. As ls r rovd, h dsrucor for yp l is clld. Sorg for h ifirs i h l is rclid. Mbr fucio Lis() is h cosrucor. Th lis is iiilizd by ssigig NULL vlus o brs d. Mbr fucio ~Lis() is h dsrucor. This lis is dsroyd by rcliig sorg for ls d hir ifirs. Th dsrucor ~Lis() clls fucio Kill o rcli sorg for h ls o his lis. Mbr fucio kill, i ur, iplicily clls h dsrucor ~() o rcli sorg for ifirs. Mbr fucio IsEpy dris if his lis is py. If h lis is py br fucio py rurs 1 (ru), ohrwis i rurs 0 (fls). Mbr fucio HdRov rovs h olds l fro his lis. A poir o h l rovd is rurd o h cllr. Mbr fucio TilIsr ppds h l rfrcd by prr o h of his lis. Mbr fucio Logs rurs h lgh of h logs ifir i l o his lis. Mbr fucio Sc rds ipu fil sr i. Idifirs i sr i r sprd by whi spc. Idifirs i sr i r pu o h lis. Mbr fucio pri fors d wris ifirs o h lis i oupu fil sr o. A il d igr ifyig () h lis r prid bfor ifirs o h lis r prid. Th lis is prid fro o. Mbr fucio Joi ppds lis L o his lis. Lis L is pid. Tbl 1. Mbr dscripios of clss Lis 3
Figur 5. Bfor isrig l o py lis Nos: 1. Th vlu of h d poirs is NULL for py lis. 2. Prr of br fucio TilIsr rfrcs h l o b ppdd. Figur 6. Afr isrig l o py lis Nos: 1. Th d poi o h w l fr isrig h firs l o lis. 2. Prr is discrdd fr fucio TilIsr rurs. 4
Figur 7. Bfor isrig l o o-py lis Nos: 1. Th o-py lis is illusrd by h lis h bgis wih h l h pois o ifir d ds wih h ifir. Mbr pois o h l h rfrcs d br pois o h l h rfrcs. 2. Prr pois o h l o b ppdd o his lis. 5
Figur 8. Afr isrig l o o-py lis Nos: 1. A poir o h w l h of h lis is ssigd o br i h puli l. 2. A poir o h w l h of h lis is ssigd o br. 3. Th lis is rid by ssigig NULL poir o br i h l h of h lis. 6
Figur 9. Bfor rovig l o lis hvig or h o l Nos: 1. A poir o h l h of h lis will b ssigd o locl vribl d rurd o h cllr. 7
Figur 10. Afr rovig l o lis hvig or h o l Nos: 1. A poir o h succdig l is ssigd o br. 2. A poir o h l h forrly d h lis is ssigd o locl vribl d rurd o h cllr. 3. A NULL-vlu is ssigd o br ->. 8
Figur 11. Bfor rovig l o lis hvig xcly o l Nos: 1. A poir o h ls riig l will b ssigd o locl vribl d rurd o h cllr. 2. No h boh h d poi o h ls riig l. 9
Figur 11. Afr rovig l o lis hvig xcly o l Nos: 1. A NULL vlu is ssigd o br by copyig h riig NULL vlu fro h ls l o h lis. 2. A NULL vlu us b xplicily ssigd o br. vo Lis::Joi(lis& l) 1. if boh liss r py h rur o h cllr. 2. if his lis is o py d lis l is py h rur o h cllr 3. if his lis is py d lis l is o py h 3.1. Assig h vlus of brs d i lis l o his lis. 3.2. Assig ull vlus o brs d i lis l. 3.3. rur o h cllr. 4. if his lis is o py d lis l is o py h ppd lis l o his lis by 4.1. Assig poir o h of lis l o h l h of his lis. 4.2. Assig poir o h of lis l o h of his lis. 4.3. Assig ull vlus o brs d i lis l. 4.4. rur o h cllr. 10
o o d d s u s u L. L. L. L. Bfor Afr Figur 12. Cs 4: ppdig lis L o his lis. 11