/*

COmo usar o modo estrutura em Linguagem C, 


// criando modelo de estrutura, usando comando "struct"

struct 	tipo1	
{
	int 	codCli;
	char	razaoSocial[50];
	char	telefone[5];
}


...


int nro;
struct tipo1	abc, def, ghi [10];

/*

Criaremos alguma nesse modelo

    
+- abc -------------+	+- def -------------+	ghi    0       |      1       |     ...      |      9       |
|                   |	|                   |	|______________|______________|______________|______________|
| codCli            |	| codCli            |	| codCli       | codCli       | codCli       | codCli       |
| razaoSocial       |	| razaoSocial       |	| razaoSocial  | razaoSocial  | razaoSocial  | razaoSocial  |
| telefone          |	| telefone          |   | telefone     | telefone     | telefone     | telefone     |
|                   |	|                   |   |              |              |              |              |
+-------------------+	+-------------------+   +--------------+--------------+--------------+--------------+

*/


// inserindo dados
scanf ("%d", &def.codCli);

scanf ("%d", &ghi[1].codCli);

// exibindo dados
printf ("%s", abc.razaosocial);



/*

Contruindo PILHAS
 um estrutura de dados de fila do tipo FILO (First Input Last Output).


input       output
 ---x        x-->
     \      /
 --+  \    /  +--	sempre (e apenas) manipula o 
   |   x  x   |         elemento que est no TOPO
   |   |  |   |         da pilha.
   |   v  |   |
   |          |
   |          |
   +----------+

Ao padro:

* push() - insere elemento na pilha

* pop () - retira e retorna elemento da pilha

* top () - retorna o elemento do topo da pilha

* size() - retorna a quantidade de elementos na pilha

Um pilha na mais  do que um vetor na vertical.

   -----+
 4   10 |
   -----+
 3    0 |
   -----+
 2   27 |
   -----+
 1   18 |
   -----+
 0    9 |
   -----+
*/

// Declarao da pilha

struct pilha
{
	int vetor[TAM];
	int topo;
} p; //nome dados a uma varivel com a estrutura de pilha.


/*

Exemplo:


    instruo          return
 ----------------+----------------
        push(9); | 1 (verdadeiro)
 ----------------+----------------
       push(18); | 1 (verdadeiro)
 ----------------+----------------
          top(); | 18
 ----------------+----------------
        push(1); | 1 (verdadeiro)
 ----------------+----------------
          pop(); | 1 (verdadeiro)
 ----------------+----------------
         size(); | 2
 ----------------+----------------
               . | .
               . | .
               . | .
 ----------------+----------------
       push(69); | 0 (falso)
 ----------------+----------------


*/

  
