#include #include #include "lista.h" using namespace std; Lista::Lista() { head = NULL; current = NULL; temp = NULL; } void Lista::AddNodeToEnd ( int data ) { nodePtr n = new node; n->next = NULL; n->data = data; if ( head != NULL ) { //Si la lista tiene elementos, inicia el recorrido. current = head; while ( current->next != NULL ) { //Si no esta al final de la lista, continua. current = current->next; } current->next = n; } else { head = n; } } void Lista::DeleteNode ( int data ) { nodePtr delPtr = NULL; temp = head; current = head; while ( current != NULL && current->data != data ) { //Siempre que hayan más nodos y la info del nodo actual no sea la buscada, entonces continúa buscando. temp = current; current = current->next; } if ( current == NULL ) { //Si se queda sin lista, no estaba el elemento. cout << "Valor " << data << " no encontrado en la lista.\n"; delete delPtr; } else { delPtr = current; current = current->next; temp->next = current; delete delPtr; cout << "Elemento borrado.\n"; } } void Lista::PrintLista() { current = head; while ( current!=NULL ) { cout << current->data << endl; current = current->next; } } void Lista::AddNodeToStart (int data) { nodePtr n = new node; n->next = NULL; n->data = data; if (head != NULL) { current = head; n->next = current; head = n; } else { head = n; } } void Lista::DeleteNodeByPosition (int position) { nodePtr delPtr = NULL; temp = head; current = head; for(int i = 0; i < position ; ++i) { if(current->next != NULL) { temp = current; current = current->next; } else { cout << "Esa posición no existe.\n"; break; } } delPtr = current; if (current->next != NULL) { current = current->next; temp->next = current; } else { temp->next = NULL; } delete delPtr; } void Lista::FindNode(int data) { nodePtr n = new node; temp = head; current = head; while ( current != NULL && current->data != data ) { //Siempre que hayan más nodos y la info del nodo actual no sea la buscada, entonces continúa buscando. temp = current; current = current->next; } if ( current == NULL ) { //Si se queda sin lista, no estaba el elemento. cout << "Valor " << data << " no encontrado en la lista.\n"; } else { cout << "El dato introducido fue encontrado.\n"; } }