Buscar

Estrutura de dados ava1

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

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

Continue navegando