Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

#include<stdio.

h>
#include<stdlib.h>

typedef struct Noh{


int valor;
struct Noh *seguinte;
}Noh;

typedef struct {
Noh * inicio;
Noh * fim;
}Lista;

void insere(int valor,Lista * listalig);

Noh * busca(int valor,Lista * listalig);

void remove(int valor,Lista * listalig);

int main(){

int vetor[]={1,2,3,4,5,6};
Lista * listaT;

Noh *ondeEstah;
listaT =(Lista *) malloc(sizeof(Lista));

listaT->inicio=listaT->fim=NULL;

insere(vetor[1],listaT);
insere(vetor[5],listaT);
insere(vetor[3],listaT);
insere(vetor[0],listaT);
insere(vetor[2],listaT);
insere(vetor[4],listaT);
ondeEstah = busca(3,listaT);
printf("\n Estah em %d",ondeEstah);
remove(3,listaT);

}
void insere(int valor, Lista * listalig){

Noh * p;

p= (Noh *)malloc(sizeof(Noh));
p->valor = valor;
p->seguinte = NULL;

if (listalig->inicio == NULL)
listalig->inicio = p;

listalig->fim =p;
printf("\nInserido o numero %d",valor);

Noh * busca(int valor,Lista * listalig){


Noh *aux;
aux = listalig->inicio;

while( aux != NULL){


if (aux->valor == valor )
return aux;
else{
aux = aux->seguinte;
}
}
return aux;
}

void remove(int valor, Lista * listalig){

Noh *aux, *anterior;


int flagSaida=0;

anterior=aux=listalig->inicio;
while(aux!= NULL && !flagSaida){
if(aux->valor == valor)
{
anterior->seguinte = aux->seguinte;
flagSaida = 1;
free(aux);
}

else
{
anterior=aux;
aux=aux->seguinte;
}
}

if(flagSaida == 1)
printf("\n Excluido com Sucesso!");
else
printf("\n Elemento no localizado!");
}

You might also like