mirror of https://gitlab.com/klmp200/LO27.git
Deleted files + fixed makefile
This commit is contained in:
parent
77491c8e61
commit
2377658d7b
|
@ -0,0 +1 @@
|
|||
Libs/
|
|
@ -14,6 +14,7 @@ LIBSOURCEOFILE=$(LIBSOURCE:=.o)
|
|||
#Generating the library binary
|
||||
$(LIBTARGET): $(LIBSOURCEOFILE)
|
||||
@echo "\n Generating the library binary"
|
||||
mkdir -p ../Libs
|
||||
$(CC) $(CFLAGS) -shared $(LIBSOURCEOFILE) -o ../Libs/$(LIBTARGET)
|
||||
|
||||
#Generating object files
|
||||
|
|
|
@ -0,0 +1,217 @@
|
|||
/*********************************************************************************
|
||||
* File Name : list.c
|
||||
* Created By : Bartuccio Antoine
|
||||
* Creation Date : [2016-10-18 13:53]
|
||||
* Last Modified : [2016-11-08 15:00]
|
||||
* Description :
|
||||
**********************************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <CellElement.h>
|
||||
#include <list.h>
|
||||
|
||||
#define SUCCESS 0
|
||||
#define FAILURE 1
|
||||
|
||||
List * CreateList() {
|
||||
List *list = malloc(sizeof(*list));
|
||||
|
||||
if(list != NULL){
|
||||
list->head = NULL;
|
||||
list->tail = NULL;
|
||||
list->size = 0;
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
int unshift(List *list, cellElement *data){
|
||||
int ok = SUCCESS;
|
||||
|
||||
cellElement* newData = (cellElement*) malloc(sizeof(cellElement));
|
||||
|
||||
/* Create a new element */
|
||||
|
||||
ListElement *newElement = malloc(sizeof(*newElement));
|
||||
if (list != NULL && newElement != NULL && newData != NULL){
|
||||
memcpy(newData, data, sizeof(cellElement));
|
||||
newElement->data = newData;
|
||||
|
||||
/* Insert the element at the begining of the list */
|
||||
|
||||
newElement->previous = NULL;
|
||||
|
||||
if (list->head != NULL){
|
||||
list->head->previous = newElement;
|
||||
} else {
|
||||
list->tail = newElement;
|
||||
}
|
||||
newElement->next = list->head;
|
||||
|
||||
list->head = newElement;
|
||||
list->size = list->size + 1;
|
||||
} else {
|
||||
if (newElement != NULL){
|
||||
free(newElement);
|
||||
}
|
||||
if (newData != NULL){
|
||||
free(newData);
|
||||
}
|
||||
ok = FAILURE;
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
int push(List *list, cellElement *data){
|
||||
int ok = SUCCESS;
|
||||
cellElement *newData = (cellElement*) malloc(sizeof(cellElement));
|
||||
|
||||
ListElement *newElement = malloc(sizeof(*newElement));
|
||||
if(list != NULL && newElement != NULL && newData != NULL){
|
||||
memcpy(newData, data, sizeof(cellElement));
|
||||
newElement->data = newData;
|
||||
newElement->next = NULL;
|
||||
if (list->tail == NULL){
|
||||
list->tail = newElement;
|
||||
list->head = newElement;
|
||||
newElement->previous = NULL;
|
||||
} else {
|
||||
newElement->previous = list->tail;
|
||||
list->tail->next = newElement;
|
||||
list->tail = newElement;
|
||||
}
|
||||
list->size = list->size + 1;
|
||||
} else {
|
||||
if (newElement != NULL){
|
||||
free(newElement);
|
||||
}
|
||||
if (newData != NULL){
|
||||
free(newData);
|
||||
}
|
||||
ok = FAILURE;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
ListElement * GetElement(List *list, int nb){
|
||||
ListElement *current = NULL;
|
||||
int i;
|
||||
|
||||
if (list != NULL && (nb < list->size || -nb < list->size)){
|
||||
if (nb == list->size -1 || nb == -1){
|
||||
current = list->tail;
|
||||
} else if (nb == 0){
|
||||
current = list->head;
|
||||
} else if (nb <= (list->size - 1)/2 && nb > 0){
|
||||
i = 0;
|
||||
current = list->head;
|
||||
while(i<nb){
|
||||
current = current->next;
|
||||
i++;
|
||||
}
|
||||
} else {
|
||||
i = list->size - 1;
|
||||
if (nb < 0){
|
||||
nb = list->size + nb -1;
|
||||
}
|
||||
while(i>nb){
|
||||
current = current->previous;
|
||||
i = i - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
int PopPtnList(List *list, ListElement *element){
|
||||
int ok = SUCCESS;
|
||||
|
||||
if (list != NULL && element != NULL){
|
||||
if (list->head == element && list->tail == element){
|
||||
list->head = NULL;
|
||||
list->tail = NULL;
|
||||
} else if (list->head == element){
|
||||
list->head = element->next;
|
||||
element->previous = NULL;
|
||||
} else if (list->tail == element){
|
||||
list->tail = element->previous;
|
||||
element->previous->next = NULL;
|
||||
} else {
|
||||
element->next->previous = element->previous;
|
||||
element->previous->next = element->next;
|
||||
}
|
||||
|
||||
if (element->data != NULL){
|
||||
FreeCellElement(element->data);
|
||||
}
|
||||
free(element);
|
||||
list->size = list->size - 1;
|
||||
} else {
|
||||
ok = FAILURE;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
int RemoveElement(List *list, int nb){
|
||||
int ok = SUCCESS;
|
||||
ListElement *toDelete = GetElement(list, nb);
|
||||
|
||||
if (toDelete != NULL){
|
||||
ok = PopPtnList(list, toDelete);
|
||||
} else {
|
||||
ok = FAILURE;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
int shift(List *list){
|
||||
return RemoveElement(list, 0);
|
||||
}
|
||||
|
||||
int pop(List *list){
|
||||
return RemoveElement(list, -1);
|
||||
}
|
||||
|
||||
int DeleteListContent(List *list){
|
||||
int ok = SUCCESS;
|
||||
ListElement * current = NULL;
|
||||
ListElement * toDelete = NULL;
|
||||
|
||||
if (list != NULL){
|
||||
current = list->head;
|
||||
while (current != NULL){
|
||||
toDelete = current;
|
||||
current = current->next;
|
||||
|
||||
if (toDelete->data != NULL){
|
||||
FreeCellElement(toDelete->data);
|
||||
}
|
||||
|
||||
free(toDelete);
|
||||
}
|
||||
list->head = NULL;
|
||||
list->tail = NULL;
|
||||
list->size = 0;
|
||||
} else {
|
||||
ok = FAILURE;
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
int FreeList(List *list){
|
||||
int ok = SUCCESS;
|
||||
|
||||
if (list != NULL){
|
||||
ok = DeleteListContent(list);
|
||||
if (ok == SUCCESS){
|
||||
free(list);
|
||||
}
|
||||
} else {
|
||||
ok = FAILURE;
|
||||
}
|
||||
return ok;
|
||||
}
|
6
Makefile
6
Makefile
|
@ -17,8 +17,8 @@ SOURCECFILE=$(SOURCE:=.c)
|
|||
SOURCEOFILE=$(SOURCE:=.o)
|
||||
|
||||
#Library variables
|
||||
DEPENDENCE=libCellElement.so
|
||||
DEPENDENCENAME=CellElement
|
||||
# DEPENDENCE=libCellElement.so
|
||||
# DEPENDENCENAME=CellElement
|
||||
|
||||
DEPENDENCELIST=libList.so
|
||||
DEPENDENCENAMELIST=List
|
||||
|
@ -35,7 +35,7 @@ $(TARGET): $(SOURCEOFILE) $(DEPENDENCELIST) lib
|
|||
lib:
|
||||
@echo "\n Generating the automaton library binary"
|
||||
mkdir -p Libs
|
||||
$(MAKE) -C LibCell
|
||||
# $(MAKE) -C LibCell
|
||||
|
||||
$(DEPENDENCELIST):
|
||||
@echo "\n Generating the list library binary"
|
||||
|
|
Loading…
Reference in New Issue