Logo Passei Direto
Buscar

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

User badge image
Rodrigo Diniz

em

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

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); 
 } 
 
 } 
}

Mais conteúdos dessa disciplina