Lista de algoritmo para estudo
1. Implemente a lista encadeada como dado em sala de aula: struct lista { int info; struct lista* prox; }; typedef struct lista Lista; /* Função de criação: retorna uma lista vazia */ Lista* lst_cria (void){ return NULL;} /* Função de inserção no início */ Lista* lst_insere(Lista* l, int i){ Lista* novo = (Lista *) malloc(sizeof(Lista)); novo->info = i; novo->prox = l; return novo; } /* Função imprime */ void lst_imprime (Lista* l){ Lista *p; for (p = l; p != NULL; p = p->prox) printf("info = %d\n", p->info); } int main() { Lista* li1; li1 = lst_cria(); li1 = lst_insere(li1, 23); li1 = lst_insere(li1, 45); Lista* li2; li2 = lst_cria(); li2 = lst_insere(li2, 10); li2 = lst_insere(li2, 56); printf("\nLista no. 1 \n"); printf("\nLista no. 2 \n"); } system("pause"); lst_imprime(li1); lst_imprime(li2);
2. Implemente uma função que tenha como valor de retorno o comprimento de uma lista encadeada, isto é, que calcule o número de nós de uma lista. Esta função deve obedecer ao protótipo: int comprimento(Lista* l); 3. Implemente uma função para retornar o número de nós da lista que possuem o campo “info” com valores maiores do que n. Essa função deve obedecer ao protótipo: int maiores(Lista* l, int n); 4. Implemente uma função que tenha como valor de retorno o ponteiro para o último nó de uma lista encadeada. Essa função deve obedecer ao protótipo: Lista* ultimo(Lista *l); 5. Implemente uma função para testar se duas listas passadas como parâmetros são iguais. Essa função deve obedecer ao protótipo: int igual(Lista *l1, Lista *l2); 6. Implemente uma função de busca que retorne um ponteiro para o nó buscado, ou NULL caso não seja encontrado. Essa função deve obedecer ao