ISTEVE: je to prostě "spojový seznam + něco navíc". co třeba takhle:
1) všechny uzly (vrcholy grafu) jsou spojené orientovanými hranami tak, že je lze jednoznačně procházet jako nezacyklený, spojový seznam - máme právě jeden "vstupní" uzel a právě jeden "výstupní" uzel (ze které už nevede žádná hrana). těmto "primárním" hranám říkám "next".
2) z každého uzlu (kromě výstupního) může (ale nemusí) vést ješrtě maximálně jedna orientovaná hrana, která vede jinam, než ta primární (kterou jsou pospojované uzly spojového seznamu) a která nikdy nevede do uzlu, který by nebyl součástí toho "podřízeného" spojového seznamu. volitelným sekundárním hranám říkám "seek".
toto je podle mě téměř vyčerpávající definice, ale já se domnívám, že kritický detail by mohl spočívat ve:
3) u uzlů, ze kterých nevede sekundární orientovaná hrana ("seek") máme alternativně ještě možnost jejich další kategorizace (např. "obarvení" - paralela k red-black trees, což je používaná datová struktura) (což se v Céčku implementuje velice snadno tak, že ty seek pointery budou ukazovat na něco, co z definice vůbec nebude smět být přidáno jako prvek toho binárního b+ stromu - triviální je označení hodnotou NULL, další jednoznačně "zakázaná" možnost je "ukazuji sám na sebe", apod. )
ANT_39: viz teď co jsem psal v bodě 3): já se domnívám, že by měl existovat nějaký trik, kterým "vyhandluju" informační entropii za výpočetní výkon :-) jinými slovy - pokud by to bylo jen tak, jak jsem to nakreslil zde -
[ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] - ale já se domnívám, že trik by mohl spočívat ve využití informační hodnoty těch uzlů, které nemají platný ten "seek" pointer. paralelu vidím ve struktuře
http://en.wikipedia.org/wiki/Red-black_tree - kterou jsem sice úplně nepochopil, ale jednak jsou to takové hezké anarchistické barvy :) jednak je tam evidentně nějaký přidaný "prvek samoorganizace"
u mě jsou dva rozdíly: jednak je to binární B+ strom a nejen binární strom, a jednak (z myslím pochopitelných implementačních důvodů) chci obarvovat jen ty uzly, ze kterých nevedou dvě další hrany.
ve skutečnosti: zatím všechny moje pokusy nějak si to představit dost selhaly: ale víceméně si myslím, že by mohly být "obarveny" třeba ty uzly, na kterých nebo za kterými bezprostředně končí nějaká ta "seek" hrana. měl jsem vymyšlených několik takových "pravidel obarvování", ale na všechno jsem po několika pokusech našel nějaký protipříklad.