Skip to content

Instantly share code, notes, and snippets.

@gabrieltavaresmelo
Created September 13, 2024 21:52
Show Gist options
  • Save gabrieltavaresmelo/6f3afb2c872f9c5159ab41946ccd0dfb to your computer and use it in GitHub Desktop.
Save gabrieltavaresmelo/6f3afb2c872f9c5159ab41946ccd0dfb to your computer and use it in GitHub Desktop.
busca_insert_remove-arrays
// Busca Linear
#include <stdio.h>
#include <stdlib.h>
int buscaLinear(int *arr, int n, int valor) {
for (int i = 0; i < n; i++) {
if (arr[i] == valor)
return i; // Retorna o índice se o valor for encontrado
}
return -1; // Retorna -1 se o valor não for encontrado
}
int main() {
int n = 5;
int *arr = malloc(n * sizeof(int));
arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; arr[4] = 50;
int valor = 30;
int indice = buscaLinear(arr, n, valor);
if (indice != -1)
printf("Valor encontrado no índice %d\n", indice);
else
printf("Valor não encontrado\n");
free(arr);
return 0;
}
// Inserção no Final
#include <stdio.h>
#include <stdlib.h>
int* inserirFinal(int *arr, int n, int valor) {
arr = realloc(arr, (n + 1) * sizeof(int)); // Redimensiona o vetor
if (arr == NULL) {
printf("Erro na alocação de memória\n");
exit(1);
}
arr[n] = valor; // Adiciona o novo valor no final
return arr;
}
int main() {
int n = 5;
int *arr = malloc(n * sizeof(int));
arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; arr[4] = 50;
int valor = 60;
arr = inserirFinal(arr, n, valor);
n++;
printf("Vetor após inserção: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
// Remoção de uma Posição Específica
#include <stdio.h>
#include <stdlib.h>
int* removerPosicao(int *arr, int n, int pos) {
// Move os elementos após a posição para a esquerda
for (int i = pos; i < n - 1; i++) {
arr[i] = arr[i + 1];
}
arr = realloc(arr, (n - 1) * sizeof(int)); // Redimensiona o vetor
if (arr == NULL && n > 1) {
printf("Erro na alocação de memória\n");
exit(1);
}
return arr;
}
int main() {
int n = 5;
int *arr = malloc(n * sizeof(int));
arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; arr[4] = 50;
int pos = 2;
arr = removerPosicao(arr, n, pos);
n--;
printf("Vetor após remoção: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment