Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Doppelt verkettete Liste

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.06.2010, 03:20 Uhr
~AnfaengerJavun
Gast


Hallo,

ich habe folgendes Problem. Wir sollen eine Klasse für die Knoten einer doppelt verketteten Liste erstellen, die nicht gegeben ist. Welche Funktionien diese Klasse haben soll könnt ihr dem von mir erstellten Skelett entnehmen. Leider habe ich überhaupt keine Ahnung von verketteten Listen bzw. deren Knoten und auch im Internet habe ich leider nichts ausreichend verständliches gefunden, daher weiß ich nicht einmal wie ich Anfangen soll...

Die Lösung müsste eigentlich recht simpel sein. Nur komm ich irgendwie überhaupt nicht drauf. Ich hoffe ihr könnt mir da weiter helfen.

Vielen Dank schon Mal an Alle.


C++:
#include "EntryNode.h"
#include <iostream>

using namespace std;

void setNextEntry(EntryNode *nextEntry){ // Den nächsten Entry setzen

}
void setPrevEntry(EntryNode *prevEntry){ // Den vorherigen Entry setzen

}
void setDate(unsigned int newDate){ // Datum für den Entry setzen
    date = newDate;
}
void setAmount(float newAmount){ // Betrag für den Entry setzen
    amount = newAmount;
}
EntryNode *getNextEntry(){

}
EntryNode *getPrevEntry(){

}
float getAmount(){ // Soll den Betrag vom Entry zurückliefern
    return amount;
}
unsigned int getDate(){ // Soll das Datum vom Entry zurückliefern
    return date;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.06.2010, 05:38 Uhr
~AnfaengerJavun
Gast


Also ich habs jetzt so gemacht...

EntryNode.cpp

C++:
#include "EntryNode.h"
#include <iostream>

using namespace std;

EntryNode::EntryNode(){
    prev = NULL;
    next = NULL;
}
void EntryNode::setNextEntry(EntryNode *nextEntry){ // Den nächsten Entry setzen
    next = nextEntry;
}
void EntryNode::setPrevEntry(EntryNode *prevEntry){ // Den vorherigen Entry setzen
    prev = prevEntry;
}
void EntryNode::setDate(unsigned int newDate){ // Datum für den Entry setzen
    date = newDate;
}
void EntryNode::setAmount(float newAmount){ // Betrag für den Entry setzen
    amount = newAmount;
}
EntryNode *getNextEntry(){
    return next;
}
EntryNode *getPrevEntry(){
    return prev;
}
float EntryNode::getAmount(){ // Soll den Betrag vom Entry zurückliefern
    return amount;
}
unsigned int EntryNode::getDate(){ // Soll das Datum vom Entry zurückliefern
    return date;
}


EntryNode.h

C++:
class EntryNode
{
private:
    EntryNode *prev;
    EntryNode *next;
    int amount;
    int date;
    
public:
    void setNextEntry(EntryNode *nextEntry);
    void setPrevEntry(EntryNode *prevEntry);
    void setDate(unsigned int newDate);
    void setAmount(float newAmount);
    EntryNode *getNextEntry();
    EntryNode *getPrevEntry();
    float getAmount();
    unsigned int getDate();
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.06.2010, 11:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja deine elemente schauen doch schonmal gut aus

außer zwei kleine diskrepanzen:


Code:
setAmount(float newAmount)

int amount



also int <=> float ...

und

Code:
setDate(unsigned int newDate)

int date



also unsigned int <=> int

--------

Deine Listenklasse muss nun folgendes tun:

sich deinen Anfang deiner Liste merken (also ein EntryNode*)
dann sollte sie mind. folgende (in irgendeiner form gearteten) methoden haben:
addNode
deleteNode
und evtl "print" (damit man sieht was drin ist)

ich will dir jetzt nicht alles vorwegnehmen, aber im endeffekt schaut addNode dann z.b so aus (pseudocode):

addNode:
anfang gesetzt: anfang->next = neues element
ansonsten: anfang = neues element

deleteNode geht ähnlich.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: