Ir para conteúdo
Fórum Script Brasil
  • 0

gerar uma lista circular:


ana10

Pergunta

Gere a seguinte lista circular:

 

y->t->r->e->w->q-> aponta de novo pra y  (essa e a lista circular) que tenho que gerar já definindo no código.

e depois 

Remova os itens da lista (remover sempre o primeiro item) e os empilhe em uma pilha.

Desempilhe os itens, exibindo-os na tela.
 
esse o algorítimo  não consegui nem iniciar ele que preciso com urgência de uma ajuda pra iniciar ! =/ 
Editado por ana10
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Ana, a fila circular é somente uma fila comum cujo o último elemento aponta para o primeiro, por isso é necessário possuir sempre o fim da fila.

fila circular consoante o código abaixo.

#include <stdlib.h>
#include <stdio.h>

struct item{
	char letra;
	item *proximo;
};
/***********************************
*cria uma fila de char, ele vai retorar 
*a fila que criou.
*********************************************/
item *criarFila(char letra){
	item *fila=(item*) malloc(sizeof(item));
	fila->letra=letra;
	fila->proximo=fila; //aponta para si proprio.
	return fila;
}
//retorna o fim da fila.
item *inserirItemNaFila(char letra, item *fila){
	
	item *fimAtual=fila;
	item *novoFim=(item*) malloc(sizeof(item));
	novoFim->letra=letra;
	novoFim->proximo=fimAtual->proximo;
	fimAtual->proximo=novoFim;
	
	return fimAtual;
}
/**********************************************
*Vai imprimir um loop inifinto da fila, mostrando
*que a fila é circular 
***********************************************/
void imprimir(item *filaInicio, item *filaFim){
	item *ponteiro=filaInicio;
	while(ponteiro!=NULL){
		printf("%c ", ponteiro->letra);
		ponteiro=ponteiro->proximo;
	}
}



int main(){
	item *inicioFila=criarFila('a');
	item *fimFila=inserirItemNaFila('b',inicioFila);
	
	printf("%c \n", fimFila->letra);
	
	fimFila=inserirItemNaFila('c',fimFila->proximo);
	printf("%c \n", fimFila->letra);
	fimFila=inserirItemNaFila('d',fimFila->proximo);
	printf("%c \n", fimFila->letra);
	fimFila=inserirItemNaFila('e',fimFila->proximo);
	printf("%c \n", fimFila->letra);
	printf("%c %c\n", inicioFila->letra,fimFila->letra);
	imprimir(inicioFila, fimFila);
}

até mais

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...