[C con Clase] Implementar una pila

Pamela Dellepiane pdellepiane en gmail.com
Vie Jun 22 05:51:37 CEST 2007


hola!! como les dije, estoy aprendiendo y para eso escribi el
siguiente encabezado para una pila de personas. Me gustaria saber si
tiene sentido que yo misma haga la siguiente implementacion cuando se
podria utilizar la STL no? (no conozco mucho la STL). o sea, podria
utilizar la STL o conocen alguna otra librería que me provea las
siguientes operaciones?


#ifndef _STACK_H_
#define _STACK_H_

#include "Person.h"

typedef unsigned int  ENTERO;
typedef unsigned char BYTE;

class Person;

class Stack
{
private:

	Person ** stack;    // Pila de almacenamiento
	Person ** stackp;   // El puntero de la pila
	BYTE     Type;      // Para indicar si la pila se creó con
constructor vacio o con tamaño configurado
	ENTERO     Size;    // Tamaño de la pila

	static void * InitializeStack ( ENTERO Size );

public:
	// Constructor sin tamaño de pila
	Stack ( void );

	// Constructor con tamaño de la pila
	Stack ( ENTERO size , bool &result );

	// Destructor del objeto
	~Stack ( void );

	// Devuelve la cantidad de elementos apilados
	int Elements ( void );

	// Devuelve TRUE si la pila está llena
	bool IsFull ( void );

	// Devuelve TRUE si la pila está vacia
	bool IsEmpty ( void );

	// Limpiar la pila
	void CleanStack ( void );

	// Establecer un buffer y tamaño determinados
	void SetBufferStack ( ENTERO size , Person ** Buffer );

	// Valor de una posición dada
	Person * ValueStack ( ENTERO n );

	// Valor del puntero de pila
	Person ** PointerStack ( void );

	// Sacar un elemento de la pila
	Person * Pop ( void );

	// Sacar un elemento de la pila
	void Pop ( ENTERO value );

	// Reponer n elementos de la pila
	bool UnPop ( ENTERO value );

	// Obtener el elemento del tope de la pila
	Person * StackTop ( void );

	// Añadir un objeto en la pila
	bool Push ( Person * p );

};

#endif


gracias y saludos!!




Más información sobre la lista de distribución Cconclase