Exemple #1
0
int main(){
    int i, base = 2, expoente = 20;
    int qtd = pow(base, expoente);

    srand( (unsigned)time(NULL) );
    for(i = 1; i <= qtd; i++)
        listaAdd(&inicio, rand());

    //Chamando a questão e inserindo outro elemento na lista diferente de NULL
    inserirInicio(&inicio, 0);
    //imprimir(inicio);
    return 0;
}
Exemple #2
0
///-------------------------------------------------------------------------
/// Acessar a Partir do Fim
///-------------------------------------------------------------------------
CLIENTE * acessarAPartirFim(LISTA ** lista, int pos)
{
    int cont=0;
    LISTA * novo = (LISTA*)calloc (1,sizeof(LISTA));
    LISTA * aux = *lista;
    CLIENTE cl;
    CLIENTE *cp;

    novo = criarLista();

    if (*lista == NULL)
    {
        return NULL;
    }
    else
    {
        while(aux!=NULL)
        {
            cl = aux->info;
            inserirInicio(&novo, cl);
            aux=aux->prox;
        }
    }

    aux=novo;

    while(aux!=NULL && cont!=pos)
    {
        aux=aux->prox;
        cont++;
    }

    if (cont!=pos)
    {
        return NULL;
    }
    else
    {
        return &aux->info;
    }

    destruir(&novo);
}
Exemple #3
0
///-------------------------------------------------------------------------
/// MAIN
///-------------------------------------------------------------------------
int main()
{
    int op=0;
    int posicao=0;

    char vetNome[30];
    LISTA *lista;

    CLIENTE dl;
    CLIENTE *cp;

    lista = criarLista();

    do
    {
        printf("1 - Criar Lista\n");
        printf("2 - Inserir Inicio\n");
        printf("3 - Inserir Final\n");
        printf("4 - Inserir Posicao\n");
        printf("5 - Acessar a partir Inicio\n");
        printf("6 - Acessar a partir 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 Retorna endereco\n");
        printf("11 - Buscar nome Retorna posicao\n");
        printf("12 - Tamanho da Lista\n");
        printf("13 - Destruir\n");
        printf("14 - Sair\n");
        printf("15 - Salvar\n");
        printf("16 - Ler\n");
        printf("opcao: ");
        scanf("%d", &op);

        switch(op)
        {
            case 1: //Criar Lista
                    lista = criarLista();
                    break;
            case 2: // Inserir Inicio
                    printf("nome: ");
                    scanf("%s", dl.nome);
                    printf("idade: ");
                    scanf("%d", &dl.idade);
                    inserirInicio(&lista, dl);
                    break;
            case 3: // Inserir Final
                    printf("nome: ");
                    scanf("%s", dl.nome);
                    printf("idade: ");
                    scanf("%d", &dl.idade);
                    inserirFinal(&lista, dl);
                    break;
            case 4: // Inserir Posicao
                    printf("nome: ");
                    scanf("%s", dl.nome);
                    printf("idade: ");
                    scanf("%d", &dl.idade);
                    printf("posicao: ");
                    scanf("%d", &posicao);
                    inserirPosicao(&lista, posicao, dl);
                    break;
            case 5: // Acessar a partir Inicio
                    printf("posicao: ");
                    scanf("%d", &posicao);
                    cp = acessarAPartirInicio(&lista, posicao);
                    if (cp!=NULL)
                    {
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("posicao nao existe\n");
                    }
                    break;
            case 6: // Acessar a partir Fim
                    printf("posicao: ");
                    scanf("%d", &posicao);
                    cp = acessarAPartirFim(&lista, posicao);
                    if (cp!=NULL)
                    {
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("posicao nao existe\n");
                    }
                    break;
            case 7: // Listar do Inicio ao Fim
                    listarInicioFim(&lista);
                    break;
            case 8: // Listar do Fim ao Inicio
                    listarFimInicio(&lista);
                    break;
            case 9: // Eliminar Posição
                    printf("posicao: ");
                    //scanf("%s", &posicao);
                    scanf("%d", &posicao);
                    eliminarPosicao(&lista, posicao);
                    break;
            case 10:     // Buscar e retornar Endereco
                    printf("nome: ");
                    scanf("%s", &vetNome);
                    cp = buscarEnderecoNome(vetNome, &lista);
                    if (cp!=NULL)
                    {
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("nao existe o nome\n");
                    }
                    break;
            case 11:     // Buscar e retornar Posicao
                    printf("nome: ");
                    scanf("%s", &vetNome);
                    posicao = buscarPosicaoNome(vetNome, &lista);
                    if (posicao >= 0)
                    {
                        printf("posicao: %d\n", posicao);
                        cp = acessarAPartirInicio(&lista, posicao);
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("nao existe o nome\n");
                    }
                    break;
            case 12:// Tamanho da lista
                    printf("tamanho: %d\n\n", tamanho(&lista)); // nao precisa passar por referencia
                    break;
            case 13:// Destruir Lista
                    destruir(&lista);
                    break;
            case 15:// Salvar
                    salvar(&lista);
                    break;
            case 16:// Ler
                    ler(&lista);
                    break;

        }

    }while(op!=14);

    return 0;
}