předchozí - obsah části - obsah - další | dotazy/odpovědi

Dynamická reprezentace grafů

Úkolem je rozšířit dynamickou implementaci grafů na grafy hranově ohodnocené. V balíku tomp.dyngraphs máte vše potřebné

Dynamicky implementované grafy
  1. rozšiření bude spočívat v implementaci rozhraní tomp.dyngraphs.WeightedGraph vaší třídou cz.muni.fi.{login}.dyngraph.WeightedDynGraph (můžete to udělat jako rozšíření třídy tomp.dyngraphs.DynGraph, ale nemusíte - nemusí to totiž být vhodné - přijďte na to sami podrobnější analýzou);
  2. rozšiřte třídu tomp.dyngraphs.GraphPrinter svou třídou cz.muni.fi.{login}.dyngraph.GraphPrinter, aby vypisovala info o hranově ohodnoceném grafu;
  3. dále napište třídu cz.muni.fi.{login}.dyngraph.Demo tak, aby podobným způsobem jako původní Demo vytvořila uzly a graf a vypisovala informace o něm, tentokrát pro graf hranově ohodnocený;
  4. vytvořené třídy a jejich metody dokumentujte dokumentačními komentáři podobně, jak to je uděláno např. ve třídě tomp.dyngraphs.DynGraph;
  5. k tomu, co vytvoříte, vygenerujte dokumentaci API tak, aby obsahovala i existující třídy z balíku tomp.dyngraph a případně jedinou použitou věc z balíku tomp.graphs - výjimku GraphException.

pozn: implementace ohodnoceného grafu bude podobná jako u původního neohodnoceného tomp.dyngraphs.DynGraph, jen si budete muset pro každý uzel pamatovat nikoli jen množinu sousedních uzlů (neighbors), ale pro každý ze sousedů ještě ohodnocení hrany, která do něj vede. Doporučenou implementací sousedů pro každý uzel není tedy Set, ale Map, která bude každému sousednímu uzlu přiřazovat float - ohodnocení hrany. Hodnoty float se do hašovací tabulky ukládají nikoli přímo, např. h.put(klíč, 1.2345), ale prostředictvím objektů typu Float, např. h.put(klíč, new Float(1.2345)). Hodnotu z objektu typu Float přečteme voláním např. f.floatValue().

pozn: funkčnost původního Dema si můžete ověřit spuštěním dávky
run-dyngraphs.bat nezapomeňte ovšem adekvátně změnit nastavení proměnné CP (tj. classpath).

Obecné informace

pozn: Pokud cvičící zadání modifikuje, je to OK. Tohle je vzorové minimální zadání.

za tyto úlohy dohromady získáte max. 4 body.


předchozí - obsah části - obsah - další | dotazy/odpovědi
Slidy předmětu byly navštíveny krát.