Lista encadeada

Páginas: 3 (653 palavras) Publicado: 7 de abril de 2013
#include
#include

typedef struct no{
int info;
struct no *next;
}No, *Nodeptr;

void imprimir_No(No);
int inserirNo(No *, int);
void inicializar_lista(No **);
voidinserir_lista(No **, int);
void desalocar_lista(No **);
void imprimir_lista(No *);
int deleteNode(No *,int);
void freememory(No *);
void OrdenacaoBubble(No *);
void Troca(int *,int *);
void separa (No *, int);

void inicializar_lista(Nodeptr *p)
{
*p= NULL;
}

int inserirNo(Nodeptr *header, int x)
{
Nodeptr newNo, prevNo, currentNo;
newNo = (Nodeptr)malloc(sizeof(No)); //tenta alocar memoria
if (newNo == NULL)
return 0; // nao conseguiu alocar
newNo->info = x;
newNo->next = NULL;

prevNo = NULL;// ponteiros auxiliares
currentNo = *header; // ponteiros auxiliares

if(currentNo == NULL) // insercao do primeiro elemento*header = newNo;
else
{
while(currentNo!=NULL) // posiciona currentNo adequadamente
{
prevNo = currentNo;
currentNo =currentNo-> next;
}
if (prevNo == NULL) // insercao antes do primeiro
{
newNo->next = *header;
*header = newNo;
}else // insercao no meio
{
prevNo->next=newNo;
newNo->next = currentNo;
}
}
return 1;
}

intdeleteNode(Nodeptr *header, int x)
{
Nodeptr prevNo, currentNo, temp;
if(*header!=NULL)
{
if(x ==(*header)->info) // remocao do primeiro
{temp = *header;
*header=(*header)->next;
free(temp);
}
else
{
prevNo = *header;
currentNo = (*header)->next;...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • Listas encadeadas
  • LISTA ENCADEADA
  • Listas Encadeadas
  • Lista encadeada
  • Lista Encadeada
  • lista encadeada
  • Lista encadeada
  • LISTA ENCADEADA

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!