hp2FEM
0.1
|
00001 #ifndef ACQUEUE_H 00002 #define ACQUEUE_H 00003 00004 #include "acdp.h" 00005 00006 /* 00007 ** definicao de uma fila generica - Salgado - 08/93 00008 */ 00009 00010 class acNodeQueue 00011 { 00012 friend class acQueue; 00013 00014 private: 00015 acNodeQueue *next; // pointer para o proximo no' 00016 void *dados; // pointer para os dados 00017 }; 00018 00019 00020 class acQueue 00021 { 00022 protected: 00023 acNodeQueue *Head; // inicio da fila 00024 acNodeQueue *Tail; // final da fila 00025 int SizeDados; // numero de bytes dos dados 00026 00027 public: 00028 00029 /******************************************* 00030 * Construtor e destrutor da fila generica * 00031 *******************************************/ 00032 00033 /* 00034 ** Construtor 00035 ** 00036 ** Formas de uso: 00037 ** 00038 ** acQueue Stack; 00039 ** Cria sem nada. 00040 ** 00041 ** acQueue Stack(sizeof(tipo)); 00042 ** Cria fila e armazena tamanho dos dados. 00043 ** 00044 */ 00045 acQueue() 00046 { 00047 Head = Tail = 0; 00048 SizeDados = 0; 00049 } 00050 00051 acQueue(int s) 00052 { 00053 Head = Tail = 0; 00054 SizeDados = s; 00055 } 00056 00057 /* 00058 ** Destrutor 00059 ** 00060 ** Deleta os elementos da fila 00061 */ 00062 ~acQueue() 00063 { 00064 Clear(); 00065 } 00066 00067 /* 00068 ** Funcao para inserir um no'. 00069 ** Deve-se passar um pointer para os dados a serem inseridos. 00070 ** 1 -> inseriu 00071 */ 00072 int Push(void *a); 00073 00074 /* 00075 ** Funcao para retirar um no'. 00076 ** Deve-se passar um pointer para uma area existente 00077 ** 1 -> retirou 00078 */ 00079 int Pop(void *a); 00080 00081 /* 00082 ** Faz uma copia do dado no topo da fila 00083 ** Deve-se passar um pointer para uma area existente 00084 ** Erros = 0 - fila vazia 00085 */ 00086 int Copy(void *a); 00087 00088 /* 00089 ** Funcao para limpar uma fila 00090 */ 00091 void Clear(); 00092 00093 /* 00094 ** Funcao para inicializar fila sem parametros 00095 */ 00096 void SetStackData(int s) 00097 { 00098 Head = Tail = 0; 00099 SizeDados = s; 00100 } 00101 00102 /* 00103 ** funcao para verificar existencia de fila 00104 */ 00105 int Exist() 00106 { 00107 return(Head != 0); 00108 } 00109 }; 00110 00111 #endif