Baixe o app para aproveitar ainda mais
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); } } }
Compartilhar