Example #1
0
void apagar_lista(LISTA_LIGADA **lista) {
  if(lista != NULL && *lista != NULL) {
    NO *prem = (*lista)->sentinela->proximo;
    NO *paux = NULL;

    while(paux != (*lista)->sentinela) {
      paux = prem->proximo;
      apagar_no(prem);
      prem = paux;
    }
    
    free(*lista);
    *lista = NULL;
  }
}
Example #2
0
int remover_item(LISTA_LIGADA *lista, int chave) {
  if(lista != NULL) {
    if(!vazia(lista)) {
      NO *paux = lista->sentinela;

      while(paux->proximo->item->chave != chave) {
	paux = paux->proximo;
      }

      if(paux != lista->sentinela) {
	NO *prem = paux->proximo;
	paux->proximo = prem->proximo;

	if(prem == lista->fim) lista->fim = paux;

	apagar_no(prem);
	lista->tamanho--;
	return 1;
      }
    }
  }
  return 0;
}
Example #3
0
void apagar_linha(ptr_no linha) /*Apagar qualquer linha*/
{
	remove_grandes(linha->acima); /* Apagar as pecas da linha de cima que ocupem a que vamos apagar*/
	apaga_lista(linha->lista_pecas); /* apagar a lista de pecas da linha a apagar*/
	top = apagar_no(linha,top); /*Apaga a linha*/	
}