CodeBlocks - trabalho utilizando Deques
539 palavras
3 páginas
#include #include
#include
// Elemento da Lista
// Duplamente Encadeada typedef struct Nodo_Lista Elem_Lista; struct Nodo_Lista { char letra; Elem_Lista *ant; Elem_Lista *prox;
};
typedef struct Descr_lista Descritor; struct Descr_lista { Elem_Lista *inicio; Elem_Lista *fim; int tamanho;
};
void inicializar(Descritor *lista) { lista->inicio = NULL; lista->fim = NULL; lista->tamanho = 0;
}
void ins_inicio_lista (Descritor * lista, char letra){ Elem_Lista *novo_elemento;
novo_elemento = (Elem_Lista*)malloc(sizeof(Elem_Lista)); if (novo_elemento == NULL) { printf("Falta de Memoria\n"); exit(1); } novo_elemento->letra = letra;
if (lista->inicio == NULL) { // Lista vazia novo_elemento->ant = NULL; novo_elemento->prox = NULL; lista->inicio = novo_elemento; lista->fim = novo_elemento; } else { // Insere no Inicio novo_elemento->ant = NULL; novo_elemento->prox = lista->inicio; lista->inicio->ant = novo_elemento; lista->inicio = novo_elemento; } lista->tamanho++; // Incrementa o contador de tamanho da lista
}
void ins_fim_lista (Descritor *lista, char letra){ Elem_Lista *novo_elemento;
novo_elemento = (Elem_Lista*)malloc(sizeof(Elem_Lista)); if (novo_elemento == NULL) { printf("Falta de Memoria\n"); exit(1); } novo_elemento->letra = letra;
if (lista->inicio == NULL) { // Lista vazia novo_elemento->ant = NULL; novo_elemento->prox = NULL; lista->inicio = novo_elemento; lista->fim = novo_elemento; } else { // Insere no Fim novo_elemento->prox = NULL; novo_elemento->ant = lista->fim; lista->fim->prox = novo_elemento; lista->fim = novo_elemento; } lista->tamanho++; //