Buscar

AVA1 Estrutura de dados lista ESTRUTURA DE DADOS UVA UNIVERSIDADE VEIGA DE ALMEIDA

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 6 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

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 6, do total de 6 páginas

Prévia do material em texto

UVA – UNIVERSIDADE VEIGA DE ALMEIDA 
 
 
 
 
 
ESTRUTURA DE DADOS 
AVA1 – Estrutura de dados lista 
 
 
 
 
 
 
 
 
PROFESSOR: Paulo Márcio Souza Freire 
NOME: Rodrigo Maia Diniz 
MATRÍCULA: 20191301456 
 
 
 
 
 
 
 
 
 
Rio de Janeiro 
2022.4 
2 
 
1 INTRODUÇÃO 
 
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. 
 
2 DESENVOLVIMENTO 
 
#include 
 
struct Nodo { 
 
 int info; 
 struct Nodo *prox; 
 
}; 
 
struct ListaSimplesEnc { 
 
 struct Nodo *prim; 
 
}; 
 
void criarLista (struct ListaSimplesEnc *pList) { 
 
 pList -> prim = NULL; 
3 
 
 
} 
 
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){ 
4 
 
 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 ){ 
 
5 
 
 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); 
 } 
6 
 
 break; 
 case 6: // abandonar o programa 
 exit(0); 
 } 
 
 } 
}

Continue navegando

Outros materiais