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++; //

Relacionados