Linked List
HejSidder og roder lidt med en hægtet liste for at øve mig og komme ind i c++ igen.
Jeg kan godt få oprettet noder og det virker som om de hægtes sammen men mit program går ned når jeg kører funktionen printList(). Nogen der kan hjælpe.
P.S. Ved godt at koden er lidt rodet og kan optimeres.
Tak
AHR
//List.cpp fil
#include "stdafx.h"
#include "List.h"
List::List(Node* node_x)
{
node = node_x;
}
void List::printList()
{
Node *myNode = node;
while(myNode->getPrevious() != NULL)
{
cout<<myNode->getArtist();
myNode = myNode->getPrevious();
}
}
//List.h fil
#ifndef List_H
#define List_H
#include "Node.h"
class List
{
private:
Node *node;
public:
List(Node* node_x);
void printList();
};
#endif
//Node.cpp fil
#include "stdafx.h"
#include "Node.h"
#include <string>
#include <iostream>
using namespace std;
Node::Node(string artist_x)
{
artist = artist_x;
}
string Node::getArtist()
{return artist;}
void Node::setPrevious(Node *previous)
{previous = previous;}
void Node::setNext(Node *next)
{next = next;}
Node* Node::getPrevious()
{return previous;}
Node* Node::getNext()
{return next;}
//Node.h fil
#ifndef Node_H
#define Node_H
#include <string>
#include <iostream>
using namespace std;
class Node
{
private:
Node *previous;
Node *next;
string artist;
public:
Node(string artist_x);
string getArtist();
void setPrevious(Node *previous);
void setNext(Node *next);
Node* getPrevious();
Node* getNext();
};
#endif
//Main fil
#include "stdafx.h"
#include "Node.h"
#include "List.h"
#include <string>
#include <iostream>
using namespace std;
int main()
{
string stop = "x";
string artist;
List *myList;
Node *prev;
Node *newNode;
static bool first = true;
while(stop != "n")
{
cout<<"Write artist\n";
getline(cin,artist);
newNode = new Node(artist);
if(first == true)
{
newNode->setPrevious(NULL);
first = false;
}
else
{
newNode->setPrevious(prev);
prev->setNext(newNode);
}
prev = newNode;
cout<<"\nContinue?";
getline(cin,stop);
}
myList = new List(newNode);
myList->printList();
return 0;
}