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