Buscar

Criando uma pilha (Codigos linguagem C)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Créditos: Otávio da Silva Cavalcante 
#include<stdio.h> 
#include<stdlib.h> 
 
typedef struct pilha1{ 
int x[300]; 
int topo1; 
}; 
struct pilha1 p1; 
 
typedef struct pilha2{ 
int x[300]; 
int topo2; 
}; 
struct pilha2 p2; 
 
typedef struct pilha3{ 
int x[600]; 
int topo3; 
}; 
struct pilha3 p3; 
 
typedef struct pilha4{ 
int x[600]; 
int topo4; 
}; 
struct pilha4 p4; 
 
int n, t, i=0, j=0, g=0; 
 
void inserirp1 () //função cria pilha 1 
{ 
puts("\nDigite os valores da pilha 1:\n"); 
for(i=0; i<t; i++){ 
scanf("%d", &n); 
p1.topo1++; 
p1.x[p1.topo1]=n;}} 
 
void inserirp2() 
{ 
puts("\nDigite os valores da pilha 2:\n"); 
for(i=0; i<t; i++){ 
scanf("%d", &n); 
p2.topo2++; 
p2.x[p2.topo2]=n;}} 
 
void mostrarp3(){ //mostra pilha 3 
printf("\nPilha 3:\n"); 
for(i=0; i<t*2; i++){ 
Créditos: Otávio da Silva Cavalcante 
printf("\nposicao[%d]=> %d\n", i, p3.x[i]);}} 
 
int Pilha3(){ // função cria pilha 3 
 
for(g=0; g<=t; g++){ 
 
for(i=0; i<=t*2; i++){ 
 if(p1.x[p1.topo1]==p3.x[i]){ 
 j=1;}} 
if(j==0){ 
 p3.x[p3.topo3]++; 
 p3.x[p3.topo3]=p1.x[p1.topo1]; 
 p1.x[p1.topo1]--;} 
if(j>0){ 
 p4.x[p4.topo4]++; 
 p4.x[p4.topo4]=p1.x[p1.topo1]; 
 p1.x[p1.topo1]--;} 
j=0; 
for(i=0; i<=t*2; i++){ 
 if(p2.x[p2.topo2]==p3.x[i]){ 
 j=1;}} 
if(j==0){ 
 p3.x[p3.topo3]++; 
 p2.x[p2.topo2]=p3.x[p3.topo3]; 
 p2.x[p2.topo2]--;} 
 
if(j>0){ 
 p4.x[p4.topo4]++; 
 p4.x[p4.topo4]=p2.x[p2.topo2]; 
 p2.x[p2.topo2]--;}} 
 
mostrarp3(p3);} 
 
 
void mostrarp12(){ //mostra pilha 1 e 2 
printf("\nPilha 1:\n"); 
for(i=0; i<t; i++){ //monstra pilha 1 
 printf("\nposicao[%d]=> %d\n", i, p1.x[i]);} 
 
printf("\nPilha 2:\n"); 
for(i=0; i<t; i++){ //mosntra pilha 2 
printf("\nposicao[%d]=> %d\n", i, p2.x[i]);} 
} 
 
 
 
void mostrarp4(){ //mostra pilha 3 
printf("\nPilha 4:\n"); 
Créditos: Otávio da Silva Cavalcante 
for(i=0; i<t*2; i++){ 
printf("\nposicao[%d]=> %d\n", i, p4.x[i]);} 
} 
 
void main() 
{ 
p1.topo1=-1; 
p2.topo2=-1; 
p3.topo3=-1; 
p4.topo4=-1; 
 
printf("Qual o tamanho da pilha 1 e pilha 2?\n"); 
scanf("%d", &t); 
 
inserirp1(); // cria pilhas 1 
 
inserirp2(); // cria pilha 2 
 
mostrarp12(); //mostra pilha 1 e 2 
 
Pilha3(); //chama função que cria pilha 3 
 
//mostrarp3(); //mostra pilha 3 
 
mostrarp4(); 
 
system("PAUSE"); 
}

Outros materiais