Buscar

AVA1 - ESTRUTURA DE DADOS

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 5 páginas

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

Prévia do material em texto

UNIVERSIDADE VEIGA DE ALMEIDA – UVA
 
CURSO SUPERIOR EM SITEMAS DE INFORMAÇÃO
ATIVIDADE CERTIFICADORA
ESTRUTURA DE DADOS
FILIPE GONÇALVES ISQUIERDO– 20191302246
RIO DE JANEIRO
2020.4
FILIPE GONÇALVES ISQUIERDO
ESTRUTURA DE DADOS
 
 Trabalho apresentado no curso 
Superior em Sistemas de Informação da 
Universidade Veiga de Almeida, como requisito 
para obtenção do certificado de
ESTRUTURA DE DADOS
 Professor Orientador: PAULO MÁRCIO SOUZA FREIRE. 
RIO DE JANEIRO
2020.4
Estrutura de dados lista
A lista linear é uma estrutura de dados em que todos os elementos são armazenados de forma sequencial, e seu encadeamento pode ocorrer de forma simples ou dupla.
Você é programador de computador em linguagem C da empresa Renalf Mega Data e precisa realizar as operações elementares com os dados de uma lista simplesmente encadeada, visando à listagem de todos os dados armazenados nessa estrutura de dados.
 
Procedimentos para elaboração do TD
Desenvolva um programa de computador que permita ao usuário realizar as operações elementares – inclusão, consulta, alteração e remoção – com a estrutura de dados lista simplesmente encadeada.
Desenvolvimento:
#include 
struct Nodo {
	int info;
	struct Nodo *prox;
};
struct ListaSimplesEnc {
	struct Nodo *prim;
};
void criarLista (struct ListaSimplesEnc *pList) {
	pList -> prim = NULL;
}
void mostrarLista (struct ListaSimplesEnc *pList){
	struct Nodo *p;
	for (p = pList -> prim; p != NULL; p = p->prox) {
		printf("%d\t", p->info);
	}
	printf("\n");
}
void inserirIni (struct ListaSimplesEnc *pList, int v){
	struct Nodo *novo;
	novo = (struct Nodo*) malloc (sizeof (struct Nodo));
	novo -> info = v;
	novo -> prox = pList -> prim;
	pList -> prim = novo;
}
void removerIni (struct ListaSimplesEnc *pList){
	struct Nodo *pAux = pList -> prim;
	pList -> prim = pList -> prim -> prox;
	free(pAux);
}
void inserirOrd (struct ListaSimplesEnc *pList, int v){
	struct Nodo *novo;
	novo = (struct Nodo*) malloc (sizeof (struct Nodo));
	novo -> info = v;
	
	struct Nodo *pAtu, *pAnt;
	pAnt = NULL;
	pAtu = pList -> prim;
	while ( pAtu != NULL && pAtu->info < v){
		pAnt = pAtu;
		pAtu = pAtu -> prox;
	}
	novo -> prox = pAtu -> prox;
	pAnt -> prox = novo;
}
int estaVazia(struct ListaSimplesEnc *pList) {
	return (pList->prim == NULL);
}
void main () {
	struct ListaSimplesEnc minhaLista;
	int valor, op;
	criarLista(&minhaLista);
	while( 1 ){
		printf( "1 - Inserir elemento no inicio\n" );
		printf( "2 - Inserir elemento em ordem (so se a lista estiver ordenada)\n" );
		printf( "3 - Remover elemento no inicio\n" );
		printf( "4 - Remover elemento\n" );
		printf( "5 - Mostrar lista\n" );
		printf( "6 - Sair\n" );
		printf( "Opcao? " );
		scanf( "%d", &op );
		switch( op ){
			case 1: // inserir elemento no inicio
		
				printf( "Valor? " );
				scanf( "%d", &valor );
				inserirIni(&minhaLista, valor);
				break;
			case 2: // inserir elemento ordenado
				printf( "Valor? " );
				scanf( "%d", &valor );
				inserirOrd(&minhaLista, valor);
				break;
			case 3: // remover o primeiro
				break;
			case 4: // remover determinado elemento
				break;
			case 5: // mostrar lista
				if (estaVazia(&minhaLista)) {
					printf("Lista vazia");
				}
				else {
					mostrarLista(&minhaLista);
				}
				break;
			case 6: // abandonar o programa
				exit(0);
		}
	}
}

Continue navegando