Listen



  • Hi ich hab hier eine kleine Aufgabe über einfache Listen und hab noch nicht wirklich viel Ahnung von C++, auf jedenfall stehe ich gerade etwas auf dem Schlauch

    #include <iostream>
    #include "List.h"
    
    int size = 0;
    
    int List::getSize(){
    	return size;
    }
    
    	int List::getElementAt(int index){
    	if((index <= size) && (index > 0) && (size >= 1)){
    		while ( index > 0 ){
    		LE* nextFirstLE = first->next;
    		delete first;
    		first = nextFirstLE;
    		}
    		return first;
    	}
    }
    
    List::List() {
    	first = 0;
    	last  = 0;
    }
    
    List::~List() {
    	while (first != 0)
    		removeFirst();
    }
    
    void List::append(int value) {
    
    	LE* newLE = new LE(value, 0);
    
    	if (first == 0) {
    		first = newLE;
    		size++;
    	}
    
    	else
    		last->next = newLE;
    		size++;
    
    	last = newLE;
    }
    
    void List::removeFirst() {
    
    	if (first != 0) {
    
    		LE* nextFirstLE = first->next;
    
    		delete first;
    		size--;
    
    		first = nextFirstLE;
    
    		if (first == 0)
    			last = 0;
    	}
    }
    

    Ich bin gerad dabei die getElementAt Methode zu schreiben, dummerweise weiß ich nicht ganz wie ich das Objekt richtig zurückgeben kann da anscheinend der Zeiger first nicht ganz reicht da es rot markiert wird, falls mir jemand helfen kann ich bitte drum, vielen dank 🙂



  • bei getElementAt fehlt natürlich noch ein size--



  • index-- herrgot 🙂



  • Was soll denn getElementAt überhaupt machen? Denn das, was dein code da macht wäre sicher nicht, was ich von einem getElementAt erwarten würde. Du löscht da "nebenbei" scheinbar deine ganze Liste bis zum entsprechendem Index. Anders gesagt: Was zum Teufel macht das "delete" da?

    Zu deiner eigentlichen Frage, ich vermute mal du hast eine Liste von ints, dann müsste man noch wissen was "LE" überhaupt ist, aber ich vermute mal ein Knoten. Dann wird die Antwort wohl sowas wie first->value oder so sein? Ohne mir noch mehr Gedanken gemacht zu haben, Kristallkugel bedienen ist schwierig.


Anmelden zum Antworten