AuD Übung 07 (Stefan Bosse) [9.1.2026]
Gruppennummer und Namen der Gruppenmitglieder (Zeilenformat!)
Punkte:Total/21./22./23./24./25./26./2

Ziel dieser Übung ist Implentierung und Unersuchung des ADT Liste mit zugehörigen Operationen.

Ausgabe : 9.1.2026

Abgabe : 19.1.2026

Es dürfen keine Standard Java Packages verwendet werden mit Ausnahme von System und String.

Listen

In dieser Aufgabe soll ein einfaches Speichermanagement mit Listen implementiert werden. Es sollen zwei Ansätze untersucht werden:

  1. Einfach verkettete Listen
  2. Zweifach verkettete Listen

Es gibt einen Hauptspeicher eines Rechners der eine Größe von N Bytes haben soll. Dieser ist zunächst frei. Dann werden in Folge Speicherbereiche angefragt (allocate) und auch wieder zurück gegeben (release).

Es solle eine Liste aller freien Bereiche verwaltet werden. Zunächst gibt es nur ein Element mit dem gesamtem Speicherbereich.

       Speicher      allocate(m1)     allocate(m2)

│ 0   ┌――――――――┐      ┌――――――――┐      ┌――――――――┐  
│     │        │      │        │      │        │  
│     │        │      │        │      │        │  
│     │        │      │ belegt │      │ belegt │  
│     │        │      │        │      │        │  
│     │        │      ├――――――――┤      ├――――――――┤  
│     │        │      │        │      │ belegt │  
│     │        │      │        │      │        │  
│     │ frei   │      │        │      ├――――――――┤  
│     │        │      │        │      │        │  
│     │        │      │ frei   │      │        │  
│     │        │      │        │      │        │  
│     │        │      │        │      │ frei   │  
│     │        │      │        │      │        │  
│     │        │      │        │      │        │  
▼ N-1 └――――――――┘      └――――――――┘      └――――――――┘  

Sowohl belegte als auch freie Blöcke werden einheitlich mit einer Datenstruktur / Objektklasse Block verwaltet:

Block = {
  start : number,
  end : number,
  flag : number // 0:frei, 1:belegt

}
Beispiel 1. Ein mögliches Beispiel (FirstFit) für eine Folge von Belegungen und Freigaben
[0,999]
allocate(10) -> [0,9]
[10,999]
allocate(20) -> [10,19]
[20,999]
release([0,9])
[20,999],[0,9]
allocate(5) -> [20,24]
[25,999],[0,9]
release([10,19])
[25,999],[0,9],[10,19]

In einer zweiten Strategie soll das BestFit Verfahren verwendet werden welches den kleinsten frein Block sucht der mindestens n Bytes umfasst. Das obige Beispiel ändert sich dann.

Beispiel 2. Ein mögliches Beispiel (BestFit) für eine Folge von Belegungen und Freigaben
[0,999]
allocate(10) -> [0,9]
[10,999]
allocate(20) -> [10,19]
[20,999]
release([0,9])
[20,999],[0,9]
allocate(5) -> [0,4]
[25,999],[5,9]
release([10,19])
[25,999],[5,9],[10,19]
Algorithmus 1. Die Belegungsalgorithmen
function firstFit(L,size) {
  node=L.head
  while (node && (node.end-node.start+1)<size) {
    node=node.next
  }
  return node
}
function bestFit(L,size) {
  node=L.head
  best=null
  while (node) {
    s1=(node.end-node.start+1)
    if (s1>=size && !best) best=node
    s2=(best.end-best.start+1)
    if (s1>=size && s2>s1)  {
      best=node
    }
    node=node.next
  }
  return best
}

Bisher wurden die freien Blöcke immer am Ende der Liste angehängt. Wir wollen hier drei Verfahren untersuchen:

  1. Freien Block am Ende anfügen (mit und ohne tail Zugang).
  2. Freien Block am Anfang anfügen.
  3. Freien Block in aufsteigender Sortierung der Startadresse einfügen.

Jetzt brauchen wir noch eine Datenstruktur / Objektklasse für die Verkettung:

  1. List1
  2. List2
Algorithmus 2. Der Testcode
M=Memory(N=50)
B1=allocate(M,10)
B2=allocate(M,20)
release(B1)
B3=allocate(M,5)
release(B2)
print(M)
B4=allocate(M,5)
print(M)
rlease(B3)
B5=allocate(M,4)
print(M)

Aufgabe 1. Die Daten der Listenelemente werden durch die Klasse Block implementiert. Implementiere die Klasse Block.

Datenblock Klasse (websh0)

aW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgdWoubGFuZy4qOwpwdWJsaWMgY2xhc3MgQmxvY2sgewogIGludCBzdGFydDsKICBpbnQgZW5kOwogIGludCBmbGFnOwogIHB1YmxpYyBCbG9jayAoaW50IHN0YXJ0LCBpbnQgZW5kLCBpbnQgZmxhZykgewogICAgdGhpcy5zdGFydD1zdGFydDsKICAgIHRoaXMuZW5kPWVuZDsKICAgIHRoaXMuZmxhZz1mbGFnOwogIH0KICBwdWJsaWMgaW50IGdldFN0YXJ0ICgpIHsKICAgIHJldHVybiB0aGlzLnN0YXJ0OwogIH0KICBwdWJsaWMgaW50IGdldEVuZCAoKSB7CiAgICByZXR1cm4gdGhpcy5lbmQ7CiAgfQogIHB1YmxpYyBpbnQgZ2V0RmxhZyAoKSB7CiAgICByZXR1cm4gdGhpcy5mbGFnOwogIH0KICBwdWJsaWMgaW50IGdldExlbmd0aCAoKSB7CiAgICByZXR1cm4gdGhpcy5lbmQtdGhpcy5zdGFydCsxOwogIH0KfQ==

Aufgabe 2. Die Daten der Listenelemente werden durch die Klasse Node1 als einfach verkettete Liste verbunden. Implementiere die Klasse List1 die die Klasse *Node1' verwendet.

Einfach verkettete Liste: Knoten Klasse (websh0)

aW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgdWoubGFuZy4qOwpwdWJsaWMgY2xhc3MgTm9kZTEgewogIEJsb2NrIGRhdGE7CiAgTm9kZTEgbmV4dDsKICBwdWJsaWMgTm9kZTEoQmxvY2sgZGF0YSkgewogICAgdGhpcy5kYXRhPWRhdGE7CiAgICB0aGlzLm5leHQ9bnVsbDsKICB9Cn0=

Einfach verkettete Listen Klasse für die Speicherverwaltung mit alternativen BestFit oder FirstFit Belegungsalgorithmus. Führe die Tests für alle drei Einfügestrategien durch (siehe oben). (websh0)

aW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgdWoubGFuZy4qOwpwdWJsaWMgY2xhc3MgTGlzdDEgewogIE5vZGUxIGhlYWQ7CiAgY2hhciBhbGxvY2FNZXRob2Q7CiAgY2hhciBpbnNlcnRNZXRob2Q7CiAgcHVibGljIExpc3QxKGNoYXIgYWxsb2NhTWV0aG9kLGNoYXIgaW5zZXJ0TWV0aG9kKSB7CiAgICAvLyBhbGxvY2FNZXRob2QgPSAnQicgfCAnRicgQmVzdEZpdCAvIEZpcnN0Rml0CiAgICAvLyBpbnNlcnRNZXRob2QgPSAnSCcgfCAnVCcgfCAnUycKICAgIHRoaXMuYWxsb2NhTWV0aG9kPWFsbG9jYU1ldGhvZDsKICAgIHRoaXMuaW5zZXJ0TWV0aG9kPWluc2VydE1ldGhvZDsKICAgIHRoaXMuaGVhZD1udWxsOwogIH0KICBwdWJsaWMgdm9pZCByZW1vdmUoTm9kZTEgbm9kZSkgewogICAgTm9kZTEgbmV4dD10aGlzLmhlYWQ7CiAgICBOb2RlMSBwcmV2PXRoaXMuaGVhZDsKICAgIHdoaWxlIChuZXh0ICYmIG5leHQuZGF0YS5zdGFydCE9bm9kZS5kYXRhLnN0YXJ0KSB7CiAgICAgIHByZXYgPSBuZXh0OwogICAgICBuZXh0ID0gbmV4dC5uZXh0OwogICAgfQogICAgaWYgKCFuZXh0KSB0aHJvdyAiRUlOVkFMSUQiOwogICAgaWYgKHByZXYuZGF0YS5zdGFydD09bmV4dC5kYXRhLnN0YXJ0KSB0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQ7CiAgICBlbHNlIHByZXYubmV4dD1uZXh0Lm5leHQ7CiAgfQogIHB1YmxpYyB2b2lkIGluc2VydChOb2RlMSBub2RlKSB7CiAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0TWV0aG9kKSB7CiAgICAgIGNhc2UgJ0gnOiB0aGlzLmluc2VydEhlYWQobm9kZSk7IHJldHVybjsKICAgICAgY2FzZSAnVCc6IHRoaXMuaW5zZXJ0VGFpbChub2RlKTsgcmV0dXJuOwogICAgICBjYXNlICdTJzogdGhpcy5pbnNlcnRTb3J0ZWQobm9kZSk7IHJldHVybjsKICAgIH0KICB9CiAgcHVibGljIHZvaWQgaW5zZXJ0SGVhZChOb2RlMSBub2RlKSB7CiAgICBpZiAodGhpcy5oZWFkPT1udWxsKSB0aGlzLmhlYWQ9bm9kZTsKICAgIGVsc2UgewogICAgICBub2RlLm5leHQ9dGhpcy5oZWFkOwogICAgICB0aGlzLmhlYWQ9bm9kZTsKICAgIH0KICB9CiAgcHVibGljIHZvaWQgaW5zZXJ0VGFpbChOb2RlMSBub2RlKSB7CiAgICBpZiAodGhpcy5oZWFkPT1udWxsKSB0aGlzLmhlYWQ9bm9kZTsKICAgIGVsc2UgewogICAgICBOb2RlMSBuZXh0PXRoaXMuaGVhZDsKICAgICAgd2hpbGUgKG5leHQubmV4dCkgewogICAgICAgIG5leHQ9bmV4dC5uZXh0OwogICAgICB9CiAgICAgIG5leHQubmV4dD1ub2RlOwogICAgfQogIH0KICBwdWJsaWMgdm9pZCBpbnNlcnRTb3J0ZWQoTm9kZTEgbm9kZSkgewogICAgaWYgKHRoaXMuaGVhZD09bnVsbCkgdGhpcy5oZWFkPW5vZGU7CiAgICBlbHNlIHsKICAgICAgTm9kZTEgcHJldj10aGlzLmhlYWQ7CiAgICAgIE5vZGUxIG5leHQ9dGhpcy5oZWFkOwogICAgICB3aGlsZSAobmV4dCAmJiBuZXh0Lm5leHQgJiYgbmV4dC5uZXh0LmRhdGEuc3RhcnQ8bm9kZS5kYXRhLnN0YXJ0KSB7CiAgICAgICAgcHJldj1uZXh0OwogICAgICAgIG5leHQ9bmV4dC5uZXh0OwogICAgICB9CiAgICAgIHByZXYubmV4dD1ub2RlOwogICAgICBub2RlLm5leHQ9bmV4dDsKICAgIH0KICB9CiAgcHVibGljIEJsb2NrIGFsbG9jYXRlKGludCBzaXplKSB7CiAgICBOb2RlMSBuZXh0LGJlc3QsYWRkcjsKICAgIHN3aXRjaCAodGhpcy5hbGxvY2FNZXRob2QpIHsKICAgICAgY2FzZSAnRic6CiAgICAgICAgbmV4dD10aGlzLmhlYWQ7CiAgICAgICAgd2hpbGUobmV4dCAmJiAobmV4dC5kYXRhLmVuZC1uZXh0LmRhdGEuc3RhcnQrMSk8c2l6ZSkgewogICAgICAgICAgbmV4dD1uZXh0Lm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmICghbmV4dCkgdGhyb3cgIk9VVE9GTUVNIjsKICAgICAgICBhZGRyID0gbmV4dC5kYXRhLnN0YXJ0OwogICAgICAgIG5leHQuZGF0YS5zdGFydCs9c2l6ZTsKICAgICAgICBpZiAobmV4dC5kYXRhLnN0YXJ0PT1uZXh0LmRhdGEuZW5kKSB7CiAgICAgICAgICAvLyBzaG91bGQgYmUgcmVtb3ZlZAogICAgICAgICAgdGhpcy5yZW1vdmUobmV4dCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgQmxvY2soYWRkcixhZGRyK3NpemUtMSwxKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAnQic6CiAgICAgICAgbmV4dD10aGlzLmhlYWQ7CiAgICAgICAgYmVzdD1udWxsOwogICAgICAgIHdoaWxlKG5leHQpIHsKICAgICAgICAgIGlmICgobmV4dC5kYXRhLmVuZC1uZXh0LmRhdGEuc3RhcnQrMSk8c2l6ZSkgewogICAgICAgICAgICBpZiAoIWJlc3QpIGJlc3Q9bmV4dDsKICAgICAgICAgICAgZWxzZSBpZiAoKG5leHQuZGF0YS5lbmQtbmV4dC5kYXRhLnN0YXJ0KzEpPChiZXN0LmRhdGEuZW5kLWJlc3QuZGF0YS5zdGFydCsxKSkgYmVzdD1uZXh0OwogICAgICAgICAgfQogICAgICAgICAgbmV4dD1uZXh0Lm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmICghYmVzdCkgdGhyb3cgIk9VVE9GTUVNIjsKICAgICAgICBhZGRyID0gYmVzdC5kYXRhLnN0YXJ0OwogICAgICAgIGJlc3QuZGF0YS5zdGFydCs9c2l6ZTsKICAgICAgICBpZiAoYmVzdC5kYXRhLnN0YXJ0PT1iZXN0LmRhdGEuZW5kKSB7CiAgICAgICAgICAvLyBzaG91bGQgYmUgcmVtb3ZlZAogICAgICAgICAgdGhpcy5yZW1vdmUoYmVzdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgQmxvY2soYWRkcixhZGRyK3NpemUtMSwxKTsKICAgICAgICBicmVhazsKICAgIH0KICB9CiAgcHVibGljIHZvaWQgcmVsZWFzZShCbG9jayBibG9jaykgewogICAgYmxvY2suZmxhZz0wOwogICAgdGhpcy5pbnNlcnQobmV3IE5vZGUxKGJsb2NrKSk7CiAgfQogIHB1YmxpYyB2b2lkIHByaW50KCkgewogICAgTm9kZTEgbmV4dD10aGlzLmhlYWQ7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT09PT09IE1FTU9SWSA9PT09PT09PT09Iik7CiAgICB3aGlsZSAobmV4dCkgewogICAgICBTeXN0ZW0ub3V0LnByaW50bG4obmV4dC5kYXRhLnN0YXJ0KyIgICIrbmV4dC5kYXRhLmVuZCsiICAiK25leHQuZGF0YS5mbGFnKTsKICAgICAgbmV4dD1uZXh0Lm5leHQ7CiAgICB9CiAgfQp9

Main Test. Ergänze die obigen Testfälle und prüfe das Ergebnis. Führe die Tests für alle drei Einfügestrategien durch (siehe oben). (websh0)

Test der einfach verketteten Listen Klasse List1. Prüfe die Ergebnisse der Speicherbelegung der Beispiele. Ausführung von make (Linux, Mac) oder makew (Windows) und run. (websh0)
Type help or hit TAB for a list of commands.

Aufgabe 3. Notiere die Ergebnisse.

Aufgabe 4. Die Daten der Listenelemente werden durch die Klasse Node2 als doppelt verkettete Liste verbunden. Implementiere die Klasse List2 die die Klasse *Node2' verwendet.

Doppelt verkettete Liste Knoten Klasse. (websh1)

aW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgdWoubGFuZy4qOwpwdWJsaWMgY2xhc3MgTm9kZTIgewogIEJsb2NrIGRhdGE7CiAgTm9kZTIgbmV4dDsKICBOb2RlMiBwcmV2OwogIHB1YmxpYyBOb2RlMihCbG9jayBkYXRhKSB7CiAgICB0aGlzLmRhdGE9ZGF0YTsKICAgIHRoaXMubmV4dD1udWxsOwogICAgdGhpcy5wcmV2PW51bGw7CiAgfQp9

Doppelt verkettete Listen Klasse für die Speicherverwaltung mit alternativen BestFit oder FirstFit Belegungsalgorithmus. (websh1)

aW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgdWoubGFuZy4qOwpwdWJsaWMgY2xhc3MgTGlzdDIgewogIE5vZGUyIGhlYWQ7CiAgY2hhciBhbGxvY2FNZXRob2Q7CiAgY2hhciBpbnNlcnRNZXRob2Q7CiAgcHVibGljIExpc3QyKGNoYXIgYWxsb2NhTWV0aG9kLGNoYXIgaW5zZXJ0TWV0aG9kKSB7CiAgICAvLyBhbGxvY2FNZXRob2QgPSAnQicgfCAnRicgQmVzdEZpdCAvIEZpcnN0Rml0CiAgICAvLyBpbnNlcnRNZXRob2RlID0gJ0gnIHwgJ1QnIHwgJ1MnCiAgICB0aGlzLmFsbG9jYU1ldGhvZD1hbGxvY2FNZXRob2Q7CiAgICB0aGlzLmluc2VydE1ldGhvZD1pbnNlcnRNZXRob2Q7CiAgICB0aGlzLmhlYWQ9bnVsbDsKICB9CiAgcHVibGljIHZvaWQgcmVtb3ZlKE5vZGUxIG5vZGUpIHsKICAgIE5vZGUyIG5leHQ9dGhpcy5oZWFkOwogICAgd2hpbGUgKG5leHQgJiYgbmV4dC5kYXRhLnN0YXJ0IT1ub2RlLmRhdGEuc3RhcnQpIHsKICAgICAgbmV4dCA9IG5leHQubmV4dDsKICAgIH0KICAgIGlmICghbmV4dCkgdGhyb3cgIkVJTlZBTElEIjsKCiAgICBpZiAodGhpcy5oZWFkLmRhdGEuc3RhcnQ9PW5leHQuZGF0YS5zdGFydCkgdGhpcy5oZWFkPXRoaXMuaGVhZC5uZXh0OwogICAgZWxzZSBuZXh0LnByZXYubmV4dD1uZXh0Lm5leHQ7CiAgfQogIHB1YmxpYyB2b2lkIGluc2VydChOb2RlMiBub2RlKSB7CiAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0TWV0aG9kKSB7CiAgICAgIGNhc2UgJ0gnOiB0aGlzLmluc2VydEhlYWQobm9kZSk7IHJldHVybjsKICAgICAgY2FzZSAnVCc6IHRoaXMuaW5zZXJ0VGFpbChub2RlKTsgcmV0dXJuOwogICAgICBjYXNlICdTJzogdGhpcy5pbnNlcnRTb3J0ZWQobm9kZSk7IHJldHVybjsKICAgIH0KICB9CiAgcHVibGljIHZvaWQgaW5zZXJ0SGVhZChOb2RlMiBub2RlKSB7CiAgICBpZiAodGhpcy5oZWFkPT1udWxsKSB0aGlzLmhlYWQ9bm9kZTsKICAgIGVsc2UgewogICAgICBub2RlLm5leHQ9dGhpcy5oZWFkOwogICAgICB0aGlzLmhlYWQ9bm9kZTsKICAgIH0KICB9CiAgcHVibGljIHZvaWQgaW5zZXJ0VGFpbChOb2RlMiBub2RlKSB7CiAgICBpZiAodGhpcy5oZWFkPT1udWxsKSB0aGlzLmhlYWQ9bm9kZTsKICAgIGVsc2UgewogICAgICBOb2RlMiBuZXh0PXRoaXMuaGVhZDsKICAgICAgd2hpbGUgKG5leHQubmV4dCkgewogICAgICAgIG5leHQ9bmV4dC5uZXh0OwogICAgICB9CiAgICAgIG5leHQubmV4dD1ub2RlOwogICAgfQogIH0KICBwdWJsaWMgdm9pZCBpbnNlcnRTb3J0ZWQoTm9kZTIgbm9kZSkgewogICAgaWYgKHRoaXMuaGVhZD09bnVsbCkgdGhpcy5oZWFkPW5vZGU7CiAgICBlbHNlIHsKICAgICAgTm9kZTIgbmV4dD10aGlzLmhlYWQ7CiAgICAgIHdoaWxlIChuZXh0ICYmIG5leHQubmV4dCAmJiBuZXh0Lm5leHQuZGF0YS5zdGFydDxub2RlLmRhdGEuc3RhcnQpIHsKICAgICAgICBuZXh0PW5leHQubmV4dDsKICAgICAgfQogICAgICBuZXh0LnByZXYubmV4dD1ub2RlOwogICAgICBub2RlLm5leHQ9bmV4dDsKICAgIH0KICB9CiAgcHVibGljIEJsb2NrIGFsbG9jYXRlKGludCBzaXplKSB7CiAgICBOb2RlMSBuZXh0LGJlc3QsYWRkcjsKICAgIHN3aXRjaCAodGhpcy5hbGxvY2FNZXRob2QpIHsKICAgICAgY2FzZSAnRic6CiAgICAgICAgbmV4dD10aGlzLmhlYWQ7CiAgICAgICAgd2hpbGUobmV4dCAmJiAobmV4dC5kYXRhLmVuZC1uZXh0LmRhdGEuc3RhcnQrMSk8c2l6ZSkgewogICAgICAgICAgbmV4dD1uZXh0Lm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmICghbmV4dCkgdGhyb3cgIk9VVE9GTUVNIjsKICAgICAgICBhZGRyID0gbmV4dC5kYXRhLnN0YXJ0OwogICAgICAgIG5leHQuZGF0YS5zdGFydCs9c2l6ZTsKICAgICAgICBpZiAobmV4dC5kYXRhLnN0YXJ0PT1uZXh0LmRhdGEuZW5kKSB7CiAgICAgICAgICAvLyBzaG91bGQgYmUgcmVtb3ZlZAogICAgICAgICAgdGhpcy5yZW1vdmUobmV4dCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgQmxvY2soYWRkcixhZGRyK3NpemUtMSwxKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAnQic6CiAgICAgICAgbmV4dD10aGlzLmhlYWQ7CiAgICAgICAgYmVzdD1udWxsOwogICAgICAgIHdoaWxlKG5leHQpIHsKICAgICAgICAgIGlmICgobmV4dC5kYXRhLmVuZC1uZXh0LmRhdGEuc3RhcnQrMSk8c2l6ZSkgewogICAgICAgICAgICBpZiAoIWJlc3QpIGJlc3Q9bmV4dDsKICAgICAgICAgICAgZWxzZSBpZiAoKG5leHQuZGF0YS5lbmQtbmV4dC5kYXRhLnN0YXJ0KzEpPChiZXN0LmRhdGEuZW5kLWJlc3QuZGF0YS5zdGFydCsxKSkgYmVzdD1uZXh0OwogICAgICAgICAgfQogICAgICAgICAgbmV4dD1uZXh0Lm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmICghYmVzdCkgdGhyb3cgIk9VVE9GTUVNIjsKICAgICAgICBhZGRyID0gYmVzdC5kYXRhLnN0YXJ0OwogICAgICAgIGJlc3QuZGF0YS5zdGFydCs9c2l6ZTsKICAgICAgICBpZiAoYmVzdC5kYXRhLnN0YXJ0PT1iZXN0LmRhdGEuZW5kKSB7CiAgICAgICAgICAvLyBzaG91bGQgYmUgcmVtb3ZlZAogICAgICAgICAgdGhpcy5yZW1vdmUoYmVzdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgQmxvY2soYWRkcixhZGRyK3NpemUtMSwxKTsKICAgICAgICBicmVhazsKICAgIH0KICB9CiAgcHVibGljIHZvaWQgcmVsZWFzZShCbG9jayBibG9jaykgewogICAgYmxvY2suZmxhZz0wOwogICAgdGhpcy5pbnNlcnQobmV3IE5vZGUyKGJsb2NrKSk7CiAgfQogIHB1YmxpYyB2b2lkIHByaW50KCkgewogICAgTm9kZTIgbmV4dD10aGlzLmhlYWQ7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT09PT09IE1FTU9SWSA9PT09PT09PT09Iik7CiAgICB3aGlsZSAobmV4dCkgewogICAgICBTeXN0ZW0ub3V0LnByaW50bG4obmV4dC5kYXRhLnN0YXJ0KyIgICIrbmV4dC5kYXRhLmVuZCsiICAiK25leHQuZGF0YS5mbGFnKTsKICAgICAgbmV4dD1uZXh0Lm5leHQ7CiAgICB9CiAgfQp9

[JAVA] { lines:10; height:30; incremental:1; progress:1 }

Main Test. Ergänze die obigen Testfälle und prüfe das Ergebnis. Führe die Tests für alle drei Einfügestrategien durch (siehe oben) und überprüfe die Speicherbelegung nach dne einzelnen Schritten. (websh1)

Test der doppelt verketteten Listen Klasse List2. Ausführung von make (Linux, Mac) oder makew (Windows) und run. (websh1)
Type help or hit TAB for a list of commands.

Aufgabe 5. Notiere die Ergebnisse.

Aufgabe 6. Welcher Belegungsalgorithmus liefert bei den Testfällen am Ende das beste Ergebnis (also am wenigstens Fragmentierung)? Wie hängt das Ergebnis von der Einfügestrategie ab? Bietet die doppelt verkettete Liste Vorteile, wenn ja bei welchen Fällen?




Hilfe



Created by the NoteBook Compiler Ver. 1.41.3 (c) Dr. Stefan Bosse (Fri Jan 09 2026 17:29:28 GMT+0100 (Central European Standard Time))