Programacao
#include<>
#define max500;
Typedef struct[]{
Char nome[30];
Int idade;
}cliente;
Typedef struct{
Cliente vetor[max];
Int nelem;
}LISTA;
Void criarlista(LISTA *lista){
Lista->nelem=0;
}
Void inserirfinal(LISTA *lista,cliente c1){
Lista->vetor[lista->nelem]&c1;
Lista->elem=lista->nelem+1;
}
Void inseir posição(LISTA *lista,int pos,cliente c1){
Int i;
IF(pos>=lista->elem)
Else{
For(i=lista->elem;i>pos;i--)
Lista->vetor[i]=lista->vetor[i-1]
}
Lsita->vetor[pos]=c1;
Lista->elem=lista->nelem+1;
}
}
Void inseririnicio(LSITA*lista,CLIENTE c1){
Inserirposicao(lista,0,c1);
}
CLIENTE* acesar apartirinicio(LISTA *lista,int pos){
IF(pos<lista->elem)
Return &lista->vetor[pos]; else Return null; //não encontrou
}
CLIENTE *acessarapartirfim(LISTA lista,int pos){
IF(pos<lista->nelem)
Return &lista->vetor[lista->nelem-pos-1];
Else
Return null; //não encontrou
}
Void listariniciofim=(LISTA *lsita){
Int i;
CLIENTE cl;
For(i=0;i<lista->nelem;i++){
Cl=lista->vetor[i];
Printf(“nome: %s \ n“ , c1. nome);
Printf(“idade: %d \n\n“, c1.idade);
}
)
Void listarfimao inicio=(LISTA *lista){
Int i;
CLIENTE cl;
For(i=<lista->nelem-1;i >0,i--)
{
Cl=lista->vetor[i];
Printf(“nome: %s \ n“ , c1. nome);
Printf(“idade: %d \n\n“, c1.idade);
}
Int main(){
Int op;
LISTA lista;
Cliente cl;
Criarlista(&lista);
Do {
Printf(“ 1-CRIAR LISTA\n ”);
Printf(“ 2-INSERIR INICIO\n ”);
Printf(“3-INSERIR FNAL \n”);
Printf(“ 4- INSERIR POSICAO \n”);
Printf(“ 5-ACESSAR A PARTIR DO INICIO\n”);
Printf(“ 6-ACESSAR A PARTIR DO FIM\n”);
Printf(“ 7-LISTAR DO INICIO AO FIM\n”);
Printf(“ 8-LISTAR DO FIM AO INICIO\n”);
Printf(“ 9-ELIMINAR\n”);
Printf(“ 10-BUSCAR NOME RETORNAR