#include "part_3.h" #include #include #include Liste * create_list() { Liste * list = malloc(sizeof(Liste)); list->nb_elements_ = 0; return list; } int list_length(Liste list) { return list.nb_elements_; } void append(Liste * list, int val) { Element * el = malloc(sizeof(Element)); el->val_ = val; el->prev_ = list->tail_; if (list->tail_ != NULL) { list->tail_->next_ = el; } list->tail_ = el; list->nb_elements_ += 1; if (list->nb_elements_==1) { list->head_ = el; } } void append_head(Liste * list, int val) { Element * el = malloc(sizeof(Element)); list->head_->prev_ = el; list->head_ = el; list->nb_elements_ += 1; } int first_value(Liste * list) { return list->head_->val_; } int last_value(Liste * list) { return list->tail_->val_; } void print_list(Liste * list) { if (list->head_ == NULL) { printf("[]\n"); return; } Element* current_el = list->head_; printf("["); printf("%lu", (unsigned long)current_el); while (current_el != NULL) { printf("%d, ", current_el->val_); current_el = current_el->next_; } printf("]\n"); } int main(int argc, char *argv[]) { Liste * list = create_list(); append(list, 69); print_list(list); return 0; }