Container in C eine Frage

Aufrufe: 1294     Aktiv: 22.01.2020 um 23:15

1

Weiß jemand eine Lösung zu dieser Aufgabe enter image description here

Diese Frage melden
gefragt

Student, Punkte: 45

 

Hast du gerade deinen ganzen Übungszettel oder so hochgeladen?

  ─   kingkevin23 14.01.2020 um 23:14
Kommentar schreiben
2 Antworten
1

Hallo, ich denke

  1. Liste vom Anfang über "nächstes Element" durchgehen bis der Listenplatz gefunden ist.
  2. Den Zeiger "nächstes Element" des aktuellen Elements als "nächstes Element" im neuen Elements abspeichern.
  3. Den Zeiger des aktuellen Elements im neuen Element als "voriges Element" abspeichern.
  4. Den Zeiger "nächstes Element" im aktuellen Element auf das neue Element ändern.

Bisschen viel Element. Ich hoffe dennoch es ist klar wie ich's meine.

LG jobe

Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

Kannst du es mir irgendwie anders erklären weil ist bisschen schwer das so zu verstehen ^^ hast es gut erklärt aber das kommt bei mir nicht an :( magst du es vielleicht nochmal erkläre wäre echt super ^^

  ─   unknown 22.01.2020 um 20:24

Kommentar schreiben

0

Hallo, das ist zu viel für einen simplen Kommentar. Ok, mit "container" kann ich nicht so viel anfangen aber eine doppelt verkettete Liste ist klar. Ein Element (vermutlich container) hat einen "Vorgänger" und einen "Nachfolger". Die einfachere Alternative ist die einfach verkettete Liste. Hier hat ein Element nur einen "Nachfolger". In der einfach verketteten Liste kannst Du Dich beim Suchen nur in eine Richtung bewegen. Bei der doppelt verketteten Liste vorwärts und rückwärts. Lässt sich schwer darstellen aber ich versuch‘s. Jedes Element hat einen Zeiger auf das nächste Element "->" und einen Zeiger auf das vorige Element " <-". Bisherige Liste: A -> <- E -> <- O -> <- U > <-A. Das "A" ist beides mal das selbe Element. Nun soll ein "I" als neues Element eingefügt werden.

  1. Liste vom Anfang - mal A angenommen - über -> durchgehen bis E gefunden wird.
  2. Im "->" Zeiger vom neuen Element I das Element O abspeichern. Der steht ja bei E als "->" Zeiger drin und da bist Du gerade.
  3. Jetzt "E" bei I im Zeiger "<-" abspeichern.
  4. Den Zeiger "->" bei E auf "I"ändern. fertig. Da das ein dynamischer Prozess ist kann man das leider nicht durch ein einfaches Codeschnipsel anschaulich darstellen. Doppelt verkettete Liste gehört meiner Meinung nach schon in die Oberklasse. In den meisten Fällen reichen ein Startwert und einfach verkettete Listen.

Andere Darstellung:

  1. A -> E
  2. <- I -> O (O kommt von E ->)
  3. E <- I -> O (bei E bist Du gerade)
  4. A -> <- E -> <- I -> O ...

Don't worry, wenn es immer noch nicht klarer wird einfach melden. Dann versuch ich's doch mal mit einem Codeschnipsel. LG jobe

Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

Kommentar schreiben