miércoles, 21 de septiembre de 2011

Frase palíndroma





PilaChar.h

#pragma once

class PilaChar
{
private:
int size;
int cab;//Cabecera de la pila
public:
bool llena;
bool hasElements;


struct structPila
{
wchar_t dato;
} *pila;

public:
PilaChar(int tam); //Constructor
bool push(wchar_t xdato);
wchar_t pop ();
wchar_t top ();
int length();
wchar_t *getPila();
};



PilaChar.cpp

#include "StdAfx.h"
#include "PilaChar.h"

PilaChar::PilaChar(int tam)
{
size = tam;
cab = -1; //Cabecera apunta a -1, entonces no hay elementos en la pila
pila = new structPila[size];

llena = false;
hasElements = false;
}

//Inserta un elemento en la pila
bool PilaChar::push(wchar_t xdato)
{
if(llena)
return false;
else
{
cab++;
pila[cab].dato = xdato;

hasElements = true;

if(cab == size-1)
llena = true;
}
}

//Extrae el elemento de la cabecera de la pila
wchar_t PilaChar::pop()
{
if(hasElements)
{
wchar_t dato_out = top();
cab--;

llena = false;

if(cab<0)
hasElements = false;

return dato_out;
}
else
return '\0';
}

//Muestra el elemento de la cabecera de la pila
wchar_t PilaChar::top()
{
if(hasElements)
return pila[cab].dato;
else
return '\0';
}

int PilaChar::length()
{
return cab+1;
}

wchar_t *PilaChar::getPila()
{
wchar_t *pilaGeted = new wchar_t[cab+1];

int j=cab;

for(int i=0;i<=cab;i++)
{
pilaGeted[j] = pila[i].dato;
j--;
}

return pilaGeted;
}


Descargar la solución completa de Pilas

No hay comentarios:

Publicar un comentario