Lista sequencial

Declarando a lista

#include <stdio.h>
#define TAM 3
typedef struct{
    int chave;
} REGISTRO;

typedef struct{
    REGISTRO registros[TAM];
    int qtde;
} LISTA;

*️⃣ Funções de manipulação da lista

Inicializando a lista sequencial

void inicializar(LISTA *l){
    l->qtde = 0;
}
### Inserindo um item na fila

void inserir(LISTA *l, REGISTRO r){
    if(l->qtde < TAM){
        l->registros[l->qtde] = r;
        l->qtde++;
    }
}

Removendo item da lista

int buscar(LISTA *l, REGISTRO r){
    for(int i = 0; i < l->qtde; i++){
        if(l->registros[i].chave == r.chave){
            return i;
        }
    }
    return -1;
}

void remover(LISTA *l, REGISTRO r){
    int pos = buscar(l, r);
    if(pos>=0){
        for(int i = pos; i < l->qtde - 1; i++){
            l->registros[i] = l->registros[i+1];
        }
        l->qtde--;
    }
}

Imprimindo a lista

void imprimir(LISTA *l){
    for(int i = 0; i < l->qtde; i++){
        printf("%d\n", l->registros[i].chave);
    }
}

🧑🏻‍💻 Testando a lista

int main() {
    LISTA l;
    inicializar(&l);
    inserir(&l, (REGISTRO){10});
    inserir(&l, (REGISTRO){20});
    inserir(&l, (REGISTRO){30});
    inserir(&l, (REGISTRO){40});
    remover(&l, (REGISTRO){10});
    inserir(&l, (REGISTRO){50});
    
    imprimir(&l);

    return 0;
}