listas.c 1.06 KB
Newer Older
André Machado's avatar
André Machado committed
1 2 3
#include"listas.h"

void cria_lDF_vazia(lDF *lista){
4 5
  lista->inicio = (apDF)malloc(sizeof(noDF));
  lista->fim = lista->inicio;
André Machado's avatar
André Machado committed
6
  lista->fim->prox = NULL;
André Machado's avatar
André Machado committed
7
  return;	
André Machado's avatar
André Machado committed
8 9 10
}

void insere_no_lDF(lDF *lista, apDF no){
11 12 13
  lista->fim->prox = no;
  lista->fim = no;
  no->prox = NULL;
André Machado's avatar
André Machado committed
14
  return;
André Machado's avatar
André Machado committed
15 16 17
}

apDF cria_no_DF(){
André Machado's avatar
André Machado committed
18
  apDF no = (apDF)malloc(sizeof(noDF));
André Machado's avatar
André Machado committed
19 20 21 22
  no->X=(lAtt*)malloc(sizeof(lAtt));
  no->Y=(lAtt*)malloc(sizeof(lAtt));
  cria_lAtt_vazia(no->X);
  cria_lAtt_vazia(no->Y);
André Machado's avatar
André Machado committed
23 24
  no->prox = NULL;
  return no;
André Machado's avatar
André Machado committed
25 26 27
}

void cria_lAtt_vazia(lAtt *lista){
28 29
  lista->inicio = (apAtt)malloc(sizeof(noAtt));
  lista->fim = lista->inicio;
André Machado's avatar
André Machado committed
30
  lista->fim->prox = NULL;
André Machado's avatar
André Machado committed
31
  return;
André Machado's avatar
André Machado committed
32 33 34
}

apAtt cria_no_Att(){
André Machado's avatar
André Machado committed
35 36 37
  apAtt no = (apAtt)malloc(sizeof(noAtt));
  no->prox = NULL;
  return no;
André Machado's avatar
André Machado committed
38 39 40
}

void insere_no_lAtt(lAtt *lista, apAtt no){
41 42 43
  lista->fim->prox = no;
  lista->fim = no;
  no->prox = NULL;
André Machado's avatar
André Machado committed
44 45 46 47 48 49 50 51 52 53 54
  return;
}

//remove o nó que está APÓS o no de entrada!
//assumindo que a entrada nunca será o ultimo no.
void remove_prox_no_lAtt(apAtt no){
  apAtt aux=no->prox;
  no->prox=no->prox->prox;
  free(aux);
  return;
}