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;
    }
    

Anmelden zum Antworten