SAID Postado Abril 24, 2009 Denunciar Share Postado Abril 24, 2009 Bom Dia, GaleraPreciso fazer este programa em C sobre Fila Dinâmica , mas não estou conseguindo fazer as funções busca , tamanhoSegue a fonte#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<iostream.h>struct caixa {char valor; caixa * prox; };typedef struct caixa *no;int main(void){ no cabeca, cauda; char opc; void criar(no, no);void inserir(no, no);void remover(no, no);void imprimir(no); do{ system ("cls"); printf("Fila Estatica Encadeada:\n\n"); printf("1) Inserir\n"); printf("2) Remover\n"); printf("3) Imprimir\n"); //printf("4) Buscar\n"); //printf("5) Tamanho\n"); //printf("0) Sair\n"); criar (&cabeca, &cauda); opc=getch(); switch (opc) { case'1': { inserir(&cabeca, &cauda);break; } case'2': { remover(&cabeca, &cauda);break; } case'3': { imprimir(cabeca);break; } /* case'4': { buscar(P);break; } case'5': { tamanhodapilha(P);break; }*/ } }while(opc!='0'); system ("cls"); puts("\n\nTecle [ENTER] para sair..."); getch(); }no obter_no (void){ return ((no)malloc(sizeof(struct caixa)));}void criar (no* pcabeca, no* pcauda){ *pcabeca=*pcauda=NULL; return;}int vazia (no cabeca){ if(cabeca==NULL) return(1); else return(0);}void inserir (no*pcabeca, no*pcauda){ char temp; no aux; int vazia (no); no obter_no(void); aux = obter_no(); puts("Informe uma letra: "); scanf("%c",&temp); (*aux).valor = temp; (*aux).prox = NULL; if (vazia(*pcabeca)==1) *pcabeca = *pcauda = aux; else { (*pcauda)->prox = aux; *pcauda = aux; }return;}void imprimir (no cabeca){ no *aux; int vazia (no); if(vazia(cabeca)==1) puts("Fila vazia"); else { printf("Os elementos são: \n"); do { printf("%c\n",(*aux).valor); cabeca = caixa.prox; }while(cabeca !=NULL); }return;}void remover (no *pcabeca, no *pcauda){ int vazia (no); if(vazia(cabeca)==1) puts("Fila vazia"); else { aux=*pcabeca; *pcabeca=(*aux).prox; free(aux); printf("Elemento removido."); if (*pcabeca==NULL) *pcauda=NULL; }return;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
SAID
Bom Dia, Galera
Preciso fazer este programa em C sobre Fila Dinâmica , mas não estou conseguindo fazer as funções busca , tamanho
Segue a fonte
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream.h>
struct caixa {char valor;
caixa * prox;
};
typedef struct caixa *no;
int main(void)
{
no cabeca, cauda;
char opc;
void criar(no, no);
void inserir(no, no);
void remover(no, no);
void imprimir(no);
do{
system ("cls");
printf("Fila Estatica Encadeada:\n\n");
printf("1) Inserir\n");
printf("2) Remover\n");
printf("3) Imprimir\n");
//printf("4) Buscar\n");
//printf("5) Tamanho\n");
//printf("0) Sair\n");
criar (&cabeca, &cauda);
opc=getch();
switch (opc)
{
case'1':
{
inserir(&cabeca, &cauda);break;
}
case'2':
{
remover(&cabeca, &cauda);break;
}
case'3':
{
imprimir(cabeca);break;
}
/* case'4':
{
buscar(P);break;
}
case'5':
{
tamanhodapilha(P);break;
}*/
}
}while(opc!='0');
system ("cls");
puts("\n\nTecle [ENTER] para sair...");
getch();
}
no obter_no (void)
{
return ((no)malloc(sizeof(struct caixa)));
}
void criar (no* pcabeca, no* pcauda)
{
*pcabeca=*pcauda=NULL;
return;
}
int vazia (no cabeca)
{
if(cabeca==NULL)
return(1);
else
return(0);
}
void inserir (no*pcabeca, no*pcauda)
{
char temp;
no aux;
int vazia (no);
no obter_no(void);
aux = obter_no();
puts("Informe uma letra: ");
scanf("%c",&temp);
(*aux).valor = temp;
(*aux).prox = NULL;
if (vazia(*pcabeca)==1)
*pcabeca = *pcauda = aux;
else
{
(*pcauda)->prox = aux;
*pcauda = aux;
}
return;
}
void imprimir (no cabeca)
{
no *aux;
int vazia (no);
if(vazia(cabeca)==1)
puts("Fila vazia");
else
{
printf("Os elementos são: \n");
do
{
printf("%c\n",(*aux).valor);
cabeca = caixa.prox;
}while(cabeca !=NULL);
}
return;
}
void remover (no *pcabeca, no *pcauda)
{
int vazia (no);
if(vazia(cabeca)==1)
puts("Fila vazia");
else
{
aux=*pcabeca;
*pcabeca=(*aux).prox;
free(aux);
printf("Elemento removido.");
if (*pcabeca==NULL)
*pcauda=NULL;
}
return;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.