| Autor |
Nachricht |
Unregistrierter
|
Unregistrierter
17:14:52 12.06.2012 Titel: |
Allgemeine Frage zu I/O |
Zitieren |
Hi,
ich muss eine Eingabe, die sowohl eine Datei- als auch eine User-Eingabe über Konsole sein kann, einlesen und diese in einem Stack (FIFO) speichern. Der Stack wird nun (schrittweise) ausgelesen und in einem globalen Puffer geschrieben. Wichtig: Der Puffer ist i. d. R. kleiner als der Stack! Wird nun der globale Puffer ausgelesen, dann soll dieselbe Reihenfolge wie beim Input gewährleistet sein. Gibt also der User "a, b, c, ..., z" ein, soll auch beim Buffer-Auslesen wieder "a, b, c, ..., z" rauskommen.
Hätte ich das Problem der manuellen User-Eingabe nicht, hätte ich die Datei von unten nach oben auslesen können, so dass die Eingabe dann in der richtigen Reihenfolge im Stack steht, aber mit manueller User-Eingabe geht das natürlich nicht.
Wie gehe ich nun am Besten vor?
Ich habe mal eine Skizze erstellt, um das Problem zu verdeutlichen.
Danke im Voraus!
L. G.
Steffo |
|
|
|
 |
Bashar
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.05.2001
Beiträge: 17761
|
Bashar Mitglied
17:17:35 12.06.2012 Titel: |
|
Zitieren |
Stack = LIFO
Queue = FIFO
Jetzt stell die Frage nochmal. |
_________________ OSL♥
|
|
 |
Shade Of Mine
Moderator
Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 18954
|
Shade Of Mine Moderator
17:18:05 12.06.2012 Titel: |
|
Zitieren |
Ein Stack (LIFO!) ist die falsche Struktur. Nimm eine FIFO Struktur und fertig. |
_________________ A language that doesn't affect the way you think about programming is not worth knowing.
|
|
 |
Unregistrierter
|
Unregistrierter
17:27:07 12.06.2012 Titel: |
|
Zitieren |
FIFO kam mir auch in den Sinn, aber 1. will ich jetzt nicht eine Queue implementieren (wir dürfen nur unsere eigenen Implementierungen benutzen), 2. Auf das Problem angesprochen, meinte mein Prof., dass es eine einfachere Möglichkeit gibt als eine Queue zu implementieren.
Genau die suche ich.
Ich könnte theoretisch die Eingabe in eine Datei schreiben und diese dann umgekehrt lesen...
L. G.
Steffo |
|
|
|
 |
Shade Of Mine
Moderator
Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 18954
|
Shade Of Mine Moderator
17:38:04 12.06.2012 Titel: |
|
Zitieren |
| Steffo schrieb: | | FIFO kam mir auch in den Sinn, aber 1. will ich jetzt nicht eine Queue implementieren (wir dürfen nur unsere eigenen Implementierungen benutzen), 2. Auf das Problem angesprochen, meinte mein Prof., dass es eine einfachere Möglichkeit gibt als eine Queue zu implementieren. |
Dann brauchen wir mehr Infos. Eine Queue ist eine klassische FIFO-Struktur und hier ziemlich ideal.
Laut deiner Beschreibung hast du aber schon eine Queue im Einsatz.
| Zitat: |
Der Stack wird nun (schrittweise) ausgelesen und in einem globalen Puffer geschrieben. Wichtig: Der Puffer ist i. d. R. kleiner als der Stack! Wird nun der globale Puffer ausgelesen, dann soll dieselbe Reihenfolge wie beim Input gewährleistet sein.
|
Diesen Buffer verwendest du ja wie eine FIFO Struktur. |
_________________ A language that doesn't affect the way you think about programming is not worth knowing.
|
|
 |
Unregistrierter
|
Unregistrierter
17:48:23 12.06.2012 Titel: |
|
Zitieren |
Verdammt, ich meinte LIFO wird von mir momentan verwendet!
Viel mehr gibt es eigentlich nicht zu sagen, außer, dass der Puffer parallel beschrieben und ausgelesen wird (das Einlesen der Datei/Eingabe in den Stack erfolgt aber sequenziell), aber diese Info wollte ich euch eigentlich vorenthalten, da das mein Problem sein soll. |
|
|
|
 |
Bashar
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.05.2001
Beiträge: 17761
|
Bashar Mitglied
17:54:26 12.06.2012 Titel: |
|
Zitieren |
Eine Queue kann man mit zwei Stacks nachbilden: Einfügen immer in Stack 1, Herausnehmen aus Stack 2. Ist Stack 2 leer, einmal Stack 1 komplett nach Stack 2 umschaufeln.
Ob du das brauchst, keine Ahnung. Kann man nicht wissen bei der dürftigen Informationslage. |
_________________ OSL♥
|
|
 |
knivil
Mitglied
Benutzerprofil
Anmeldungsdatum: 11.02.2009
Beiträge: 5874
|
knivil Mitglied
17:56:18 12.06.2012 Titel: |
|
Zitieren |
Also sowas wie Producer und Consumer? |
_________________ If it were not for laughter, there would be no Tao.
Sie können einen Beitrag nicht so schnell nach Ihrem letzten absenden, bitte warten Sie einen Augenblick.
|
|
 |
Unregistrierter
|
Unregistrierter
18:12:54 12.06.2012 Titel: |
|
Zitieren |
| knivil schrieb: | | Also sowas wie Producer und Consumer? |
Genau das.
@Bashar: Ich machs wohl so, thx! |
|
|
|
 |
knivil
Mitglied
Benutzerprofil
Anmeldungsdatum: 11.02.2009
Beiträge: 5874
|
knivil Mitglied
18:51:05 12.06.2012 Titel: |
|
Zitieren |
Du must doch nur deinen Buffer vor gemeinsamen Zugriff schuetzen. |
_________________ If it were not for laughter, there would be no Tao.
Sie können einen Beitrag nicht so schnell nach Ihrem letzten absenden, bitte warten Sie einen Augenblick.
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|