Datenspeicherung und DatenstrukturenTrees'Baume' stellen eine Datenstruktur dar. Hier ist der Zugriff auf einzelne Daten meist hierarchisch gegliedert. Man fängt bei der 'Wurzel' (root) an und kann sich dann über mehrere Stufen zum gewünschten Datum hinbewegen. Auf jeder Stufe 'veraestelt' sich der Baum, man hat dann mehrere Möglichkeiten, sich für den Pfad zu entscheiden, der zum gewünschten Datum führt. Sub-DirectoriesEine sehr sinnvolle Anwendung für solche Hierarchien sind Trees: Sub-DirectoriesSub-Directories, die man bei manchen Disketten-Betriebssystemen auf einer Diskette anlegen kann. Beim Atari ST werden sie beispielsweise 'Ordner' genannt, dahinter verbirgt sich aber genau dieses Konzept. Bei den geringen Speicher-Kapazitäten der 3-Zoll-Floppies sind derartige Spielereien noch nicht unbedingt nötig, immerhin kann man seine Diskette aber auch hier in mehrere USER-Bereiche einteilen. Sinnvoll sind soche Unter-Inhaltsverzeichnisse vor allem dann, wenn ein Speicher mit mehreren Megabytes zur Verfügung steht, also eine Hard-Disc etwa. Der Zugriff auf eine bestimmte Datei unter Die Abteilungen des Betriebssystems: AmsdosAmsdos könnte immerhin auch schon Baum-foermig dargestellt werden: Die Abteilungen des Betriebssystems: AmsdosAMSDOS / \ / \ / \ Laufwerk Operationen: BD5B / 349A / 349A: FLO SUBA Laufwerk LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL Um den Brief einzuladen, muss man Die Abteilungen des Betriebssystems: AmsdosAMSDOS bewegen, auf Laufwerk LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL ListenAuch die Trees: ListenListen von Einleitung: LOGO Trees: ListenListe in Einleitung: LOGO Diese Trees: ListenListe enthält zwei Unterlisten: [30 40 50] und [1 2 3]. Das folgende Beispiel zeigt, wie man diese verschachtelten Trees: ListenListen im Speicher darstellen kann: Startpointer --+ +---> POINTER4-----> POINTER5-----> POINTER6--->O | | pointer4->O pointer5->O pointer6->O | | 1 2 3 | | +-------------+ +-------------------------------------------+ | | +--> POINTER0-----> POINTER1-----> POINTER2-----> POINTER3-->O | pointer0->O pointer1->0 pointer2--+ pointer3-------+ 100 200 Trees: ListenLISTE | Trees: ListenLISTE | +-----------------------+ | +-----------+ +---> POINTER7-----> POINTER8-----> POINTER9----->O |Anm.: O=NIL| pointer7->O pointer8->O pointer9->O +-----------+ 30 40 50 Es gibt aber noch viele andere, mögliche Form für verkettete Trees: ListenListen. Man kann auch Ringspeicher realisieren, indem man in den letzten Pointer nicht NIL sondern wieder ein Zeiger auf das erste Element der Trees: ListenListe einträgt. Man kann aber auch die Datenspeicherung und Datenstrukturen: RecordsRecords in einer verketteten Trees: ListenListe über je einen Vor- und Rückwärtszeiger verknuepfen, um sich innerhalb der Trees: ListenListe in beiden Richtungen bewegen zu können. Nicht nur baumartige Iterationen - Schleifen: StrukturStrukturen sondern auch mehrdimensionale Felder sind realisierbar. Unter praktischen Gesichtspunkten sind die aber fast ausschließlich den Datenspeicherung und Datenstrukturen: ArraysArrays vorbehalten. verkettete Listen im CPCDas Betriebssystem des Schneider CPCDas Betriebssystem des Schneider CPC verwendet verkettete Trees: ListenListen hauptsächlich im MAIN FIRMWARE JUMPBLOCK: KERNEL li Die Ticker Datenspeicherung und Datenstrukturen: ChainsChain, li die Fast Ticker Datenspeicherung und Datenstrukturen: ChainsChain und li die Frame Flyback Datenspeicherung und Datenstrukturen: ChainsChain. Auch die Trees: ListenListen, in die die gekickten Ereignisse bis zu ihrer Bearbeitung eingereiht werden, sind Datenspeicherung und Datenstrukturen: ChainsChains: li Die asynchronous pending queue und li die synchronous pending queue. Bei der letzteren kommt als eine Variante noch hinzu, dass hier die einzelnen Einträge eine Priorität haben und vom MAIN FIRMWARE JUMPBLOCK: KERNEL Außerdem sind auch noch die Tabellen für die externen Kommandos (Maschinencode über HIMEM: RSXRSX'es) über verkettete Trees: ListenListen verknuepft, wofür man bei jedem Aufruf von KERNEL: BCD1: KL LOG EXTKL LOG EXT vier Datentypen: Bytes |