Cvičení 7
ArrayHelper
- Vytvořte třídu ArrayHelper, která bude obsahovat pomocné metody pro práci s polem.
- Ve třídě ArrayHelper Implementujte statickou metodu Swap, která bude přijímat 3 parametry (pole a 2 indexy). V rámci této metody dojde k záměně hodnot v daném poli na daných indexech. Metodu implementujte tak aby ji bylo možné použít pole libovolného datového typu (je potřeba využít generických datových typů).
- Implementujte statickou metodu Concat, která bude přijímat 2 pole stejného datového typu a bude vracet pole nové (stejného datového typu), které vznikne spojením těchto 2 polí.
- Implementaci otestujte.
- Pokud jste při implementaci využili generických datových typů na úrovni metod, upravte implementaci tak aby byly definovány na úrovni celé třídy. Pokud jste je definovali na úrovni třídy, upravte je tak aby byly definovány na úrovni metod.
TreeMap
- Vytvořte generický interface IKeyValuePair, který bude definovat vlastnosti Key a Value. Každá z vlastností může mít jiný datový typ. Konkrétní typ bude definován v okamžiku použití interface. Obě vlastnosti budou jen pro čtení.
- Vytvořte třídu Node, která bude implementovat interface IKeyValuePair. Hodnoty pro vlastnosti Key a Value bude nutné definovat v okamžiku vytváření instance této třídy. Třída Node bude mít navíc obsahovat vlastnosti Left a Right, které budou reprezentovat levého a pravého potomka daného uzlu (třída Node bude sloužit k vytvoření binárního stromu).
- Vytvořte třídu TreeMap, která bude reprezentovat strukturu typu "klíč / hodnota" (slovník). Konkrétní datové typy pro klíč a pro hodnotu se budou definovat v okamžiku vytváření stromu.
- V rámci třídy TreeMap implementujte indexer pro nastavení a čtení hodnoty na základě klíče (ideálně si vytvořte pomocné metody Set a Get, které budete v rámci indexeru volat). Data se budou ukládat do binárního stromu v rámci třídy TreeMap. Samotný strom bude reprezentován třídou Node.
- Třída TreeMap bude obsahovat vlastnost Count, která bude vracet počet záznamů ve slovníku.
- Třída TreeMap bude obsahovat metodu ToArray, která bude vracet pole typu IKeyValuePair všech klíčů a hodnot ve slovníku.
- Implementaci otestujte.