void insere_ordenado(struct l_descr *lista, int valor){ if(esta_vazia(lista) == 1){ insere_lista_nula(lista, valor); return; } if(valor <= lista->inicio->valor){ insere_inicio(lista, valor); return; } if(valor >= lista->inicio->anterior->valor){ insere_fim(lista, valor); return; } struct no *aux = lista->inicio; while(valor > aux->valor){ aux = aux->proximo; } struct no *novo = malloc(sizeof(struct no)); aux->anterior->proximo = novo; novo->anterior = aux->anterior; aux->anterior = novo; novo->proximo = aux; novo->valor = valor; lista->cnt++; }
int main(){ celula ini; ini.prox=NULL; insere_fim(&ini,15); insere_fim(&ini,25); insere_fim(&ini,35); insere_fim(&ini,45); insere_inicio(&ini,7); insere_fim(&ini,1); remove_inicio(&ini); remove_fim(&ini); celula *t; for(t=ini.prox; t!=NULL; t=t->prox){ printf("%d\n",t->conteudo); } return 0; }
/* 3 - Adiciona vôo na fila */ void insere_fila (FILA f, char *codigo_voo, char tipo_voo, int combustivel_voo, int aviso_voo, int pista_voo) { f->fim = insere_fim (f->fim, codigo_voo, tipo_voo, combustivel_voo, aviso_voo, pista_voo); if (f->ini == NULL) f->ini = f->fim; }