Logo Passei Direto
Buscar
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

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

Disciplina : Estrutura de Dados 
Professor: Luciano de Pinna Vieira 
Aluno: Alesson Amaral de Freitas 
Matrícula: 1220102540 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
 
// Definição da estrutura para um nó da lista 
typedef struct Node { 
 int data; 
 struct Node* next; 
} Node; 
 
// Função para criar um novo nó 
Node* createNode(int data) { 
 Node* newNode = (Node*)malloc(sizeof(Node)); 
 newNode->data = data; 
 newNode->next = NULL; 
 return newNode; 
} 
 
// Função para adicionar um novo elemento ao final da lista 
void append(Node** head, int data) { 
 Node* newNode = createNode(data); 
 
 if (*head == NULL) { 
 *head = newNode; 
 } else { 
 Node* current = *head; 
 while (current->next != NULL) { 
 current = current->next; 
 } 
 current->next = newNode; 
 } 
} 
 
// Função para imprimir todos os elementos da lista 
void displayList(Node* head) { 
 Node* current = head; 
 while (current != NULL) { 
 printf("%d -> ", current->data); 
 current = current->next; 
 } 
 printf("NULL\n"); 
} 
 
// Função para procurar um elemento na lista 
Node* search(Node* head, int key) { 
 Node* current = head; 
 while (current != NULL) { 
 if (current->data == key) { 
 return current; 
 } 
 current = current->next; 
 } 
 return NULL; 
} 
 
// Função para remover um elemento da lista 
void removeElement(Node** head, int data) { 
 Node* current = *head; 
 Node* prev = NULL; 
 
 while (current != NULL) { 
 if (current->data == data) { 
 if (prev == NULL) { 
 *head = current->next; 
 } else { 
 prev->next = current->next; 
 } 
 free(current); 
 return; 
 } 
 
 prev = current; 
 current = current->next; 
 } 
} 
 
// Função principal 
int main() { 
 Node* head = NULL; 
 
 int choice, data, key; 
 
 while (1) { 
 printf("\n1. Adicionar elemento\n2. Consultar elemento\n3. Remover 
elemento\n4. Listar elementos\n5. Sair\n"); 
 printf("Escolha uma opção: "); 
 scanf("%d", &choice); 
 
 switch (choice) { 
 case 1: 
 printf("Digite o valor a ser adicionado: "); 
 scanf("%d", &data); 
 append(&head, data); 
 break; 
 case 2: 
 printf("Digite o valor a ser consultado: "); 
 scanf("%d", &key); 
 Node* result = search(head, key); 
 if (result != NULL) { 
 printf("Elemento encontrado: %d\n", result->data); 
 } else { 
 printf("Elemento não encontrado.\n"); 
 } 
 break; 
 case 3: 
 printf("Digite o valor a ser removido: "); 
 scanf("%d", &data); 
 removeElement(&head, data); 
 break; 
 case 4: 
 printf("Lista de elementos: "); 
 displayList(head); 
 break; 
 case 5: 
 exit(0); 
 default: 
 printf("Opção inválida!\n"); 
 } 
 } 
 
 return 0; 
}

Mais conteúdos dessa disciplina