Título: porque aparece Id returned 1 exit status??? (solucionado) Publicado por: berbash116 en 1 Enero 2019, 23:46 pm hola como estan?, hace un tiempo mi profesor nos dio este programa sin decirnos la gran cosa solo dijo "intenten ejecutarla para antes del examen", lo arregle y todo pero aun me arroja error, ojala puedan ayudarme
les dejo el programa // Fig. 17.4: list.h // Template List class definition. #ifndef LIST_H #define LIST_H #include <iostream> using std::cout; #include <new> #include "list" // ListNode class definition template< class NODETYPE > class List { public: List(); // constructor ~List(); // destructor void insertAtFront( const NODETYPE & ); void insertAtBack( const NODETYPE & ); bool removeFromFront( NODETYPE & ); bool removeFromBack( NODETYPE & ); bool isEmpty() const; void print() const; private: List< NODETYPE > *firstPtr; // pointer to first node List< NODETYPE > *lastPtr; // pointer to last node // utility function to allocate new node List< NODETYPE > *getNewNode( const NODETYPE & ); }; // end class List // default constructor template< class NODETYPE > List< NODETYPE >::List() : firstPtr( 0 ), lastPtr( 0 ) { // empty body } // end List constructor // destructor template< class NODETYPE > List< NODETYPE >::~List() { if ( !isEmpty() ) { // List is not empty cout << "Destroying nodes ...\n"; List< NODETYPE > *currentPtr = firstPtr; List< NODETYPE > *tempPtr; while ( currentPtr != 0 ) { // delete remaining nodes tempPtr = currentPtr; cout << tempPtr->data << '\n'; currentPtr = currentPtr->nextPtr; delete tempPtr; } // end while } // end if cout << "All nodes destroyed\n\n"; } // end List destructor // insert node at front of list template< class NODETYPE > void List< NODETYPE >::insertAtFront( const NODETYPE &value ) { List< NODETYPE > *newPtr = getNewNode( value ); if ( isEmpty() ) // List is empty firstPtr = lastPtr = newPtr; else { // List is not empty newPtr->nextPtr = firstPtr; firstPtr = newPtr; } // end else } // end function insertAtFront // insert node at back of list template< class NODETYPE > void List< NODETYPE >::insertAtBack( const NODETYPE &value ) { List< NODETYPE > *newPtr = getNewNode( value ); if ( isEmpty() ) // List is empty firstPtr = lastPtr = newPtr; else { // List is not empty lastPtr->nextPtr = newPtr; lastPtr = newPtr; } // end else } // end function insertAtBack // delete node from front of list template< class NODETYPE > bool List< NODETYPE >::removeFromFront( NODETYPE &value ) { if ( isEmpty() ) // List is empty return false; // delete unsuccessful else { List< NODETYPE > *tempPtr = firstPtr; if ( firstPtr == lastPtr ) firstPtr = lastPtr = 0; else firstPtr = firstPtr->nextPtr; value = tempPtr->data; // data being removed delete tempPtr; return true; // delete successful } // end else } // end function removeFromFront // delete node from back of list template< class NODETYPE > bool List< NODETYPE >::removeFromBack( NODETYPE &value ) { if ( isEmpty() ) return false; // delete unsuccessful else { List< NODETYPE > *tempPtr = lastPtr; if ( firstPtr == lastPtr ) firstPtr = lastPtr = 0; else { List< NODETYPE > *currentPtr = firstPtr; // locate second-to-last element while ( currentPtr->nextPtr != lastPtr ) currentPtr = currentPtr->nextPtr; lastPtr = currentPtr; currentPtr->nextPtr = 0; } // end else value = tempPtr->data; delete tempPtr; return true; // delete successful } // end else } // end function removeFromBack // is List empty? template< class NODETYPE > bool List< NODETYPE >::isEmpty() const { return firstPtr == 0; } // end function isEmpty // return pointer to newly allocated node template< class NODETYPE > List< NODETYPE > *List< NODETYPE >::getNewNode( const NODETYPE &value ) { return new List< NODETYPE >( value ); } // end function getNewNode // display contents of List template< class NODETYPE > void List< NODETYPE >::print() const { if ( isEmpty() ) { cout << "The list is empty\n\n"; return; } // end if List< NODETYPE > *currentPtr = firstPtr; cout << "The list is: "; while ( currentPtr != 0 ) { cout << currentPtr->data << ' '; currentPtr = currentPtr->nextPtr; } // end while cout << "\n\n"; } // end function print #endif Título: Re: porque aparece Id returned 1 exit status??? Publicado por: MAFUS en 2 Enero 2019, 01:17 am No es un programa, es la definición de una clase para manejar una lista.
Lo que ves es un fallo del enlazador, le debe faltar algo para terminar de enlazar. Por otra parte: la líne #include "list" parece que sobra. Se intenta incluir un archivo llamado list, que se encuentra en el mismo directorio que éste. Pero este se debe llamar list.h, así que creo que es un fallo intencionado que os ha introducido el profesor. Quien sabe. Título: Re: porque aparece Id returned 1 exit status??? Publicado por: berbash116 en 3 Enero 2019, 01:26 am aaaa dale, muchas gracias.
|