Liste/Array
-
folgende Aufgabe:
Implementieren Sie die doppelt verkettete Liste mit einem Array und bilden Sie die Referenzen dabei über Feldindizes.
Was ist damit gemeint?
-
imho du sollst schnittstellen für eine liste anbieten, im hintergrund aber ein array verwenden. vermutlich wird es aber einfach nur heißen: bau nen dynamisches array mit so was ähnlichem, wie iteratoren...
was steht denn noch so in der aufgabenstellung? (btw falsches forum ;o))
bb
-
welchen könnte das haben ? Liste mit array ?
-
Ich meinte macht das einen Sinn ?

-
naja - ich würd dem prof. ne mail schreiben und fragen, was er will - eben weil die aufgabenstellung in meinen augen nicht all zu viel sinn macht ;o)
bb
-
mal nee andere Frage.
Wie kann man einen Zeiger an eine Funktion übergeben ?
Diese Lösung kenn ich .
void foo(int** ptr){} void main(void) { int * x; foo(&x); // Hier übergabe }
-
blurry134 schrieb:
mal nee andere Frage...
Mal ein paar andere Antworten:
1. "(void)" bei Parametern ist in C++ eigentlich unüblich, "()" wird bevorzugt.
2. "void main" war noch nie gültiges C++, die main-Funktion hat den Rückgabewert int, wenn gleich mit der Besonderheit, das ein "return 0" automatisch durchgeführt wird, wenn man selbst kein return schreibt.blurry134 schrieb:
Wie kann man einen Zeiger an eine Funktion übergeben ?
Kommt auf die Zielsetzung an. Wird der Zeiger in der Funktion geändert? Wenn ja, Doppelzeiger oder (was ich in C++ bevorzuge) eine Zeigerreferenz.
-
Zeigerreferenz? Wie würde das ausschaun ?
-
so
void foo(int*& ptr){}
-
blurry1345 schrieb:
folgende Aufgabe:
Implementieren Sie die doppelt verkettete Liste mit einem Array und bilden Sie die Referenzen dabei über Feldindizes.
Was ist damit gemeint?
Ich tippe mal sowas:
typedef struct element Element; const int N = 10; struct element { element* prev, *next; int content; }; int main() { int i = 0; Element e[N] = {0}, *pe = &e[0]; while ( i < N-1 ) e[i].next = &e[i+1], e[i+1].prev = &e[i], e[i++].content = i; e[i].content = i; while ( pe != NULL ) cout << pe->content << endl, pe = pe->next; return 0; }
-
struct element { element* prev, *next; int content; }; int main() { int i = 0; Element e[N] = {0}, *pe = &e[0]; // element klein schreiben, sonst weiß der compiler nicht was das ist ;) while ( i < N-1 ) e[i].next = &e[i+1], e[i+1].prev = &e[i], e[i++].content = i; e[i].content = i; while ( pe != NULL ) cout << pe->content << endl, pe = pe->next; return 0; }