Hi,
ich habe hier ein Programm geschrieben, was mir ein Ablage erzeugt.
Ich habe bildlich gesprochen ein Blattpapier, das in 2 Teile unterteilt ist. Im ersten Teil stehen die Infos, im zweiten Teil ist der Zeiger auf das nächste Blatt.
Nun möchte ich durch die Funktion copy, ablage1 in ablage2 kopieren.
Die Reihenfolge der Infos, soll dabei einmal egal sein.
Allerdings komme ich da nicht so ganz weiter, da ich auch nicht weiß, wie ich die neue Ablage, ablage 2 zuordnen kann etc.
Hier einmal der Code:
ich habe hier ein Programm geschrieben, was mir ein Ablage erzeugt.
Ich habe bildlich gesprochen ein Blattpapier, das in 2 Teile unterteilt ist. Im ersten Teil stehen die Infos, im zweiten Teil ist der Zeiger auf das nächste Blatt.
Nun möchte ich durch die Funktion copy, ablage1 in ablage2 kopieren.
Die Reihenfolge der Infos, soll dabei einmal egal sein.
Allerdings komme ich da nicht so ganz weiter, da ich auch nicht weiß, wie ich die neue Ablage, ablage 2 zuordnen kann etc.
Hier einmal der Code:
PHP:
#include <iostream>
#include <conio.h>
using namespace std;
class ablage{
private:
struct knoten{
int info;
struct knoten *next;
};
int cnt; // zählzt die Knoten
struct knoten *oben; // Zeiger auf das oberste Element
public:
ablage()
{
cnt=0;
oben=NULL;
}
void drauflegen(int x)
{
struct knoten *p = new knoten; // erzeuge neuen Knoten
p->info = x; // Infowert wird x
p->next = oben; // next-Wert wird initialisiert mit Positionszeiger
// es wird also VOR dem aktuellen Element engefügt
oben = p; // Positionszeiger zeigt nun auf das neue Element
cnt++; // Zähler erhöhen
}
void runternehmen()
{
struct knoten * help; // Merken des Nachfolgers des Positionszeigers
if (cnt == 0) // Nur sinnvoll, wenn es mindestens ein Element gibt
help = NULL;
else
{
help = oben-> next;
cnt--; // Zähler veringern
}
delete oben; // Speicher aufräumen
oben = help; // Positionszeiger wird ehemaliger Nachfolger
}
int top()
{
struct knoten *p = oben;
int i=0,test;
while (p!=NULL)
{
if (i=cnt)
{
test = p->info;
}
p=p->next;
}
return test;
}
void copy()
{
struct knoten *p = oben;
//struct knoten *q = new knoten; // erzeuge neuen Knoten
while (p!=NULL)
{
drauflegen(p->info);
p=p->next;
}
}
};
int _tmain(int argc, _TCHAR* argv[])
{
ablage ablage1;
int eingabe;
cout << "Geben Sie 5 Zahlen ein.\n"<<endl;
for (int i=0;i<5;i++)
{
cin >> eingabe;
ablage1.drauflegen(eingabe);
}
cout << "Das oberste Element ist: " << ablage1.top()<< endl;
ablage ablage2;
ablage2.copy();
/cout << "Das oberste Element ist: " << ablage2.top()<< endl;
getch();
return 0;
}