Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: berbash116 en 1 Enero 2019, 23:46 pm



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.