DrunkenKilla
Ensign
- Registriert
- Aug. 2006
- Beiträge
- 210
Moin,
wenn ich das Programm starte, läuft es in einer Endlosschleife und gibt nur einen Wert (den letzten) zurück. Wo ist der Fehler?
wenn ich das Programm starte, läuft es in einer Endlosschleife und gibt nur einen Wert (den letzten) zurück. Wo ist der Fehler?
Code:
//
// main.cpp
// Aufgabe5
//
// Created by du on 06.12.11.
// Copyright 2011 __MyCompanyName__. All rights reserved.
//
#include <iostream>
using namespace std;
struct ListElem{
private:
ListElem* m_Next;
ListElem* m_Prev;
int m_Elem;
public:
int getElem(){
return m_Elem;
}
void setPrev(ListElem* elem){
m_Prev = elem;
}
ListElem* getPrev(){
return m_Prev;
}
void setNext(ListElem* next){
m_Next = next;
}
ListElem* getNext(){
return m_Next;
}
void setElem(int elem){
m_Elem = elem;
}
ListElem(int elem, ListElem* next, ListElem* prev){
m_Next = next;
m_Prev = prev;
m_Elem = elem;
if(m_Next != 0)
m_Next->setPrev(this);
if (m_Prev != 0)
m_Prev->setNext(this);
}
};
struct DoubleList{
ListElem* m_Head;
ListElem* m_Tail;
DoubleList(){
m_Head = 0;
m_Tail = 0;
}
void pushFront(int elem){
if(m_Head == 0)
m_Head = m_Tail = new ListElem(elem, 0, 0);
else
m_Head = new ListElem(elem, m_Head, 0);
}
void pushBack(int elem){
if(m_Tail == 0)
m_Tail = m_Head = new ListElem(elem, 0, 0);
else
m_Tail = new ListElem(elem, 0, m_Tail);
}
void addElement(int elem){
m_Tail = m_Head;
m_Head = new ListElem(elem, m_Head, 0);
}
void print(){
for (ListElem* elem = m_Head; elem != 0; elem->getNext()) {
cout << elem->getElem() << endl;
}
}
};
int main (int argc, const char * argv[])
{
DoubleList dl;
dl.addElement(5);
dl.addElement(10);
/*
dl.pushFront(5);
dl.pushBack(10);
dl.pushFront(10);
dl.pushFront(15);
dl.pushFront(25);
dl.pushFront(35);
*/
dl.print();
return 0;
}