guess were doing link lists now, for real though
This commit is contained in:
parent
7f44da58b5
commit
bafffedd0c
2 changed files with 38 additions and 0 deletions
17
include/element_list.h
Normal file
17
include/element_list.h
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#ifndef __ELEMENT_LIST_H__
|
||||||
|
#define __ELEMENT_LIST_H__
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct element_list_node element_list_node_t;
|
||||||
|
|
||||||
|
struct element_list_node {
|
||||||
|
element_list_node_t *first;
|
||||||
|
element_list_node_t *last;
|
||||||
|
element_list_node_t *next;
|
||||||
|
element_list_node_t *prev;
|
||||||
|
cfglr_element_t *element;
|
||||||
|
};
|
||||||
|
|
||||||
|
element_list_node_t *element_list_add(element_list_node_t *list, element_list_node_t *node);
|
||||||
|
|
||||||
|
#endif
|
||||||
21
src/element_list.c
Normal file
21
src/element_list.c
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
#include "configulator.h"
|
||||||
|
#include "element_list.h"
|
||||||
|
|
||||||
|
|
||||||
|
element_list_node_t *element_list_add(element_list_node_t *list, element_list_node_t *node) {
|
||||||
|
element_list_node_t *last = list->last;
|
||||||
|
|
||||||
|
node->first = list->first;
|
||||||
|
node->prev = last;
|
||||||
|
|
||||||
|
last->next = node;
|
||||||
|
|
||||||
|
element_list_node_t *next = node;
|
||||||
|
|
||||||
|
while(next) {
|
||||||
|
next->last = node;
|
||||||
|
next = next->prev;
|
||||||
|
}
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue