rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 10// Tipo base dos elementos da listatypedef struct elementos { char nome[50]; // Outros elementos} t_elemento;// Estrutura da listatypedef struct lista { t_elemento vetor[MAX];//vet que armazena elem. da pilha int n; // posicao (indice) do ultimo elemento da lista} t_lista; // tipo listat_lista criar(){ t_lista lista; lista.n = -1; return lista;}int isVazia(t_lista * lista){ return (lista->n == -1);}int isCheia(t_lista * lista){ return (lista->n == MAX-1);}int getTamanho(t_lista * lista) { return lista->n + 1;}t_elemento * getElemento(t_lista * lista, int pos) { if ((pos > lista->n) || (pos < 0)) return 0; return &(lista->vetor[pos]);}int compara(t_elemento dado1, t_elemento dado2){ return strcmp(dado1.nome, dado2.nome);}int getPosicao(t_lista * lista, t_elemento dado){ int i; for (i = 0; i <= lista->n; i++) if (compara(lista->vetor[i], dado) == 0) return i; return -1;}int deslocaEsquerda(t_lista * lista, int pos) { int i; for (i=pos; i<=(lista->n); i++) lista->vetor[i] = lista->vetor[i+1]; return 1;}int deslocaDireita(t_lista * lista, int pos) { int i; for (i=lista->n + 1; i>pos; i--) lista->vetor[i] = lista->vetor[i-1]; return 1;}int inserir (t_lista * lista, int pos, t_elemento dado) { if ( isCheia(lista) || (pos > lista->n + 1) || (pos < 0) ) return 0; deslocaDireita(lista, pos); lista->vetor[pos] = dado; (lista->n)++; return 1;}int remover (t_lista *lista, int pos) { if ((pos > lista->n) || (pos < 0)) return 0; deslocaEsquerda(lista, pos); (lista->n)--; return 1;}int main(){ //Criando printf("\n\nCriando Lista..."); t_lista listinha = criar(); t_elemento a, b, c; printf("Digite o primeiro nome: "); scanf("%s",&a.nome); getchar(); printf("Digite o Segundo nome: "); scanf("%s",&b.nome); getchar(); printf("Digite o terceiro nome: "); scanf("%s",&c.nome); //Inserindo printf("\n\nInserindo..."); inserir (&listinha, 0, a); inserir (&listinha, 1, b); inserir (&listinha, 2, c); //Mostrando printf("\n\nMostrando..."); printf("\nNome1: %s", getElemento(&listinha, 0)->nome); printf("\nNomes: %s", getElemento(&listinha, 1)->nome); printf("\nNome3: %s", getElemento(&listinha, 2)->nome); //Buscando e mostrando printf("\n\nBuscando mostrando..."); printf("\nBuscou o nome: %s", getElemento(&listinha, getPosicao(&listinha, b))->nome ); //Apagando um nome printf("\n\nApagando(posicao 2)..."); remover(&listinha, 2); return 0; }