FUN ES LISTA ENCADEADA
#include <stdlib.h>
#include <conio.h>
struct nodo{ int info; struct nodo *prox;
}elemento;
struct nodo *inicio; char resp; int valor;
void insere(int dado)
{
int res = 0; struct nodo *pnovo; pnovo=(struct nodo*)malloc(sizeof(elemento)); pnovo->info=dado; pnovo->prox=NULL; struct nodo *atual = inicio; struct nodo *ant = inicio;
if(inicio == NULL){ // no caso de lista vazia, insere novo nodo, que será o inicio inicio = pnovo; } else{ if (pnovo->info < dado){//se o novo nodo é menor, insere no inicio pnovo->prox=inicio; inicio=pnovo; } else{ while (pnovo->info > dado){//se o elemento é maior, percorre a lista ant = atual; atual = atual->prox; } if (atual->prox = NULL){//se percorreu toda a lista e não encontrou um elemento maior, insere no final da lista atual->prox = pnovo; } if (atual->prox != NULL){//se percorreu e encontrou um elemento maior, insere no meio (antes do maior, depois do menor) ant->prox = pnovo; pnovo->prox = atual; } } }
}
// Procedimento para inserção no fim da lista void insereFim(int dado)
{
struct nodo *pnovo;
pnovo=(struct nodo*)malloc(sizeof(elemento)); pnovo->info=dado; pnovo->prox=NULL;
struct nodo *atual = inicio; if(inicio == NULL){ inicio = pnovo; } else{ while(atual->prox != NULL){ atual = atual->prox; } atual->prox = pnovo; }
}
//Procedimento que retorna o tamanho da lista int tamanhoLista()
{
struct nodo *primeiro = inicio; int res=0; while(primeiro != NULL){ res++; primeiro=primeiro->prox; } return res;
}
// Procedimento para consultar um valor na lista int consulta(int valor)
{
int resp = 0; struct nodo *atual = inicio; while(atual != NULL){ if(atual->info == valor){ resp = 1; } atual = atual->prox; } return resp;
}
// Procedimento para inserção no meio da lista
void