Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Classificação: Pública UNIVERSIDADE VEIGA DE ALMEIDA Aluno: Matheus dos Santos Cardoso Matrícula: 1220106496 ESTRUTURA DE DADOS AVALIAÇÃO 1 TRABALHO DA DISCIPLINA Rio de Janeiro/RJ 2023 2 Classificação: Pública #include <stdio.h> #include <stdlib.h> // Definição da estrutura de um nó da lista struct Node { int data; struct Node* next; }; // Função para criar um novo nó struct Node* createNode(int data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = data; newNode->next = NULL; return newNode; } // Função para inserir um nó no final da lista void insertNode(struct Node** head, int data) { struct Node* newNode = createNode(data); if (*head == NULL) { *head = newNode; } else { struct Node* temp = *head; while (temp->next != NULL) { temp = temp->next; 3 Classificação: Pública } temp->next = newNode; } } // Função para exibir os elementos da lista void displayList(struct Node* head) { struct Node* current = head; while (current != NULL) { printf("%d -> ", current->data); current = current->next; } printf("NULL\n"); } // Função para verificar se a lista está vazia int isEmpty(struct Node* head) { return head == NULL; } // Função para remover um nó da lista void removeNode(struct Node** head, int data) { if (isEmpty(*head)) { printf("A lista está vazia. Remoção impossível.\n"); return; } 4 Classificação: Pública struct Node* temp = *head; struct Node* prev = NULL; // Se o nó a ser removido está no início da lista if (temp != NULL && temp->data == data) { *head = temp->next; free(temp); printf("Nó com valor %d removido com sucesso.\n", data); return; } // Busca pelo nó a ser removido while (temp != NULL && temp->data != data) { prev = temp; temp = temp->next; } // Se o nó não foi encontrado if (temp == NULL) { printf("Nó com valor %d não encontrado na lista.\n", data); return; } // Remove o nó da lista prev->next = temp->next; 5 Classificação: Pública free(temp); printf("Nó com valor %d removido com sucesso.\n", data); } // Função principal int main() { struct Node* head = NULL; // Exemplo de operações insertNode(&head, 10); insertNode(&head, 20); insertNode(&head, 30); insertNode(&head, 40); printf("Lista original: "); displayList(head); removeNode(&head, 20); printf("Lista após remoção: "); displayList(head); insertNode(&head, 50); printf("Lista após inserção: "); displayList(head); return 0; }
Compartilhar