elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema Pilas y colas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema Pilas y colas  (Leído 2,804 veces)
Oppenheimer

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Problema Pilas y colas
« en: 31 Octubre 2013, 23:26 pm »

Hola, estoy haciendo un programa que necesita implementar pilas y colas para comparar 2 palabras palíndromas. Tengo un problema a la hora de compilar y despues de horas rompiendome la cabeza pido ayuda xd.

El problema me da a mi que esta en las cabeceras de los .h. Pero no lo consigo ver, os dejo el código a ver si alguien identifica el problema. Gracias de antemano =)!!

Código:
//pila.h
#ifndef __PILA_H__
#define __PILA_H__
#include "Nodo.h"
#include <iostream>
#include <string>


class Pila
{
  private:
          Nodo *primero;
          unsigned int numElemntos;
          void borrarCima();
 
  public:
         Pila();
         ~Pila();
         void apilar(char);
         bool desapilar(char &);
         unsigned int getElemntos();
         bool vaciaP();
};
#endif

Código:
 //Cola.h
#ifndef __COLA_H__
#define __COLA_H__
#include "Nodo.h"
#include <iostream>
#include <string>


class Cola
{
  private:
          Nodo *primero;
          Nodo  *ultimo;
          unsigned int numElemntos;
          void borrarCabeza();
 
  public:
         Cola();
         ~Cola();
         void encolar(char);
         bool desencolar(char &);
         bool vaciaC();
         unsigned int getElemntos();
};
#endif
Código:
//Nodo.h
#ifndef __NODO_H__
#define __NODO_H__
#include "Pila.h"
#include "Cola.h"
#include <iostream>
#include <string>

class Nodo
{
   friend class Pila;
   friend class Cola;
   private:
         
           Nodo *siguiente;
           char caracter; 
   
   public:
          Nodo(char);
          char getElemento();
          void setElemento(char);   
};
#endif
Código:
//Pila.cpp
#include "Nodo.h"
#include "Pila.h"
#include <iostream>
#include <string>

using namespace std;

Pila::Pila()
{
   primero = NULL;
   numElemento = 0;
};
Pila::~Pila()
{
    while(!vaciaP()) //{borrarcima();}
    {
      Nodo *p = primero;
      primero = primero->siguiente;
      delete (p);       
   
    }
};
             
bool Pila:: VaciaP()
{
     return primero; //numElementos==0 ->compara para tener un bool
};
             

void Pila::apilar(char c)
{
     Nodo *p = new Nodo(c);
     p->siguiente = primero;
     primero = p;
     numElementos++;
     
};
void Pila::borrarCima()
{
   
     Nodo *p = primero;
     primero = primero->siguiente;
     delete p;
     numElementos--;
}
bool Pila::desapilar (char &c)
{
     Nodo *aux;
     
     if(VaciaP())
     {
         cout << "La pila esta vacia \n";
         return false;           
     }
     else
     {
         aux = primero;
         primero = primero->siguiente;
         delete(aux);
         numElementos--;
         return true;
     }
};

char Pila::getElementos()
{
  return numElementos;
};

Código:
//Cola.cpp
#include "Nodo.h"
#include "Cola.h"
#include <iostream>
#include <string>

using namespace std;

Cola::Cola()
{
        Nodo  *primero = NULL;
        Nodo  *ultimo = NULL;
        unsigned int numElemntos = 0;     
};

Cola::~Cola()
{
     while(!vaciaC()) //{borrarCabeza();}
    {
      Nodo *p = primero;
      primero = primero->siguiente;
      delete (p);       
    }
};
void Cola::encolar(char c)
{   
     Nodo *p = new Cola(c);
     if (vaciaC())
     {
        primero = *p;
        ultimo = *p;
        numElementos++;         
     }
     else
     {
          p->siguiente = ultimo;
          ultimo = p;
          numElementos++
     }
 
};
bool Cola::desencolar (char &c)
{
     Nodo *aux;
     
     if(VaciaC())
     {
         cout << "La cola esta vacia \n";
         return false;
                   
     } else if (numElementos==1)
     {
       delete (primero);
       primero=null;
       ultimo=null;
       numElementos --;
       return true;
     }
     else
     {
         aux = primero;
         primero = primero->siguiente;
         delete(aux);
         numElementos--;
         return true;
     }
};
void Pila::borrarCabeza()
{
   
     Nodo *p = primero;
     primero = primero->siguiente;
     if(primero == NULL)
     {
      final = NULL;         
     }
     delete (p);
     numElementos--;
};

char Cola::getElementos()
{
  return numElementos;
};

Código:
//Nodo.cpp
#include "Nodo.h"
#include <iostream>
#include <string>

using namespace std;

Nodo::Nodo(char c)
{
   caracter = c; 
   siguiente = '\0';    //NULL 
};

char Nodo::getElemento()
{
  return caracter ;
};

void Nodo::setElemento(char c)
{
  caracter = c;   

};


Y los fallos que me tira el compilador son los siguientes:

1 C:\Dev-Cpp\Nodo.h:3,               from Nodo.cpp In file included from Nodo.h:3,               from Nodo.cpp
1 C:\Dev-Cpp\Nodo.cpp                  from Nodo.cpp
11 C:\Dev-Cpp\Pila.h ISO C++ forbids declaration of `Nodo' with no type
11 C:\Dev-Cpp\Pila.h expected `;' before '*' token
1 C:\Dev-Cpp\Nodo.h:4,               from Nodo.cpp In file included from Nodo.h:4,               from Nodo.cpp
1 C:\Dev-Cpp\Nodo.cpp                  from Nodo.cpp
11 C:\Dev-Cpp\Cola.h ISO C++ forbids declaration of `Nodo' with no type
11 C:\Dev-Cpp\Cola.h expected `;' before '*' token
12 C:\Dev-Cpp\Cola.h ISO C++ forbids declaration of `Nodo' with no type
12 C:\Dev-Cpp\Cola.h expected `;' before '*' token
C:\Dev-Cpp\Makefile.win [Build Error]  [Nodo.o] Error 1


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cOLAS EN JAVa
Java
arbeluc 1 5,983 Último mensaje 14 Mayo 2004, 23:51 pm
por Ragnarok
Ayuda con Pilas y Colas
Programación Visual Basic
[Decoded] 5 8,205 Último mensaje 30 Agosto 2010, 15:06 pm
por goldarg
problema con extraccion usando colas
Programación C/C++
Zerus- 2 2,733 Último mensaje 1 Octubre 2010, 00:21 am
por Zerus-
Ayuda con Pilas y Colas
Programación C/C++
HeavyPsychedelic 1 3,358 Último mensaje 26 Octubre 2010, 18:57 pm
por Littlehorse
Pilas y Colas Pascal
Programación General
vanchopper 3 6,849 Último mensaje 31 Marzo 2011, 13:27 pm
por Khronos14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines