Ah...si anche cosģ andrebbe...io ho provato a creare varie classi, ma faccio un sacco di errori di cui non capisco la causa....riporto le classi:
hpp della classe Nodo e successivamente il .cpp:
codice:
#ifndef NODE_HPP
#define NODE_HPP
class Node
{
protected:
int element;
Node* next;
public:
Node(int element);
~Node();
int getElement();
void setElement(int element);
void setNext(Node * next);
Node* getNext();
};
#endif /* NODE_HPP */
codice:
#include "Node.hpp"
Node:: Node(int number)
{
element=number;
}
Node:: ~Node(){ delete this;}
Node:: getElement(){return element;}
Node::setElement(int number){element=number;}
Node::setNext(Node* succ){next=succ;}
Node:: getNext(){return next;}
hpp e cpp di LinkedList:
codice:
#ifndef LINKEDLIST_HPP
#define LINKEDLIST_HPP
#include "Node.hpp"
class LinkedList
{
protected:
Node head;
Node tail;
int size;
public:
LinkedList();
~LinkedList();
void setHead(Node n);
Node getHead();
void setTail(Node n);
Node getTail();
int getSize();
void addNode(int element);
void deleteNode();
};
#endif /* LINKEDLIST_HPP */
codice:
#include "LinkedList.hpp"
#include "Node.hpp"
LinkedList:: LinkedList()
{
head=NULL;
tail=NULL;
size=0;
}
LinkedList::~LinkedList(){delete this;}
LinkedList::setHead(Node n){head=n;}
LinkedList::getHead(){return head;}
LinkedList:: setTail(Node n){tail=n;}
LinkedList::getTail(){return tail;}
LinkedList::getSize(){return size;}
LinkedList::addNode(int element){
Node nuovo=new Node(element);
if(size==0)
{
head=nuovo;
}
else
{
nuovo.setNext(head);
head=nuovo;
}
size++;
}
LinkedList::deleteNode(){
if(size!=0)
{
Node tmp=this->getHead();
head=head.getNext();
tmp=NULL;
}
size--;
}
Alcune cose non vanno bene come le inizializzazioni a null...sono troppo abituato al Java.
classe Stack con header e .cpp:
codice:
ifndef STACK_HPP
#define STACK_HPP
#include "LinkedList.hpp"
//#include "Node.hpp"
class Stack
{
protected:
LinkedList lista;
int size;
Node top;
public:
Stack();
~Stack();
int Top();
int getsize();
void push(int nuovo);
void pop();
};
#endif /* STACK_HPP */
codice:
#include "Stack.hpp"
#include "LinkedList.hpp"
#include "Node.hpp"
LinkedList stack;
Stack::Stack()
{
stack=new LinkedList();
top=stack.getHead();
}
Stack::~Stack(){delete this;}
Stack::Top(){return stack.getHead().getElement();}
Stack::getsize(){return stack.getSize();}
Stack::pop(){stack.deleteNode();}
Stack::push(int nuovo){
stack.addNode(nuovo);
top=stack.getHead();
}
Non va bene nulla
I metodi del cpp di LinkedList non vengono trovati...non so nemmeno se questi include sono messi bene...