TP pilha, fila e lista
Listas, Filas e Pilhas
Introdução:
A prática 3, tem como objetivo capacitar o aluno a desenvolver e implementar programas que envolvam estruturas de dados como listas, filas e pilhas.
Exercícios:
1. Na questão 1 pede para ser criado uma biblioteca de funções para lista, a implementação deve ser feita obrigatoriamente utilizando listas encadeadas.
Numa lista encadeada, para cada novo elemento inserido na estrutura, alocamos um espaço de memória para armazená-lo.
Arranjo da memória de uma lista encadeada:
Função de inicialização:
A função que inicializa uma lista deve criar uma lista vazia, sem nenhum elemento. Como a lista é representada pelo ponteiro para o primeiro elemento, uma lista vazia é representada pelo ponteiro NULL, pois não existem elementos na lista. A função tem como valor de retorno a lista vazia inicializada, isto é, o valor de retorno é NULL.
Função inicializa implementada:
/* função de inicialização: retorna uma lista vazia */ void inicializa(tlista *L) { *L = NULL;
}
Função que analisa se a lista está vazia:
Nessa função ao receber uma lista como parâmetro, fazemos a leitura para saber se a lista se encontra vazia ou apresenta algum elemento inserido. Caso essa lista esteja vazia o programa deve retornar 1, caso contrario 0.
Função vazia implementada:
/* função vazia: retorna 1 se vazia ou 0 se não vazia */ int vazia (tlista* L){ return (L== NULL);
}
Função de impressão:
Ao receber umas lista como parâmetro e a instanciar na função de impressão, os elementos que se encontram nela serão impressos.
Função implementada:
/* função que imprime a lista */ void imprime(tlista* L){ tlista* item = L; while(item != NULL){ printf("%d", item->n ); item= item->prox; }
}
Função de inserção ao fim da lista:
Uma vez criada a lista vazia, podemos inserir novos elementos nela. Para cada elemento inserido na lista, devemos alocar dinamicamente a memória