40 lines
869 B
C
40 lines
869 B
C
/* node.c: Node Structure */
|
|
|
|
#include "list.h"
|
|
|
|
/* Node Functions */
|
|
|
|
/**
|
|
* Create a Node structure.
|
|
*
|
|
* @param v Value (Number or String).
|
|
* @param next Pointer to next Node structure.
|
|
* @param prev Pointer to previous Node structure.
|
|
*
|
|
* @return Pointer to new Node structure (must be deleted later).
|
|
**/
|
|
Node * node_create(Value v, Node *next, Node *prev) {
|
|
Node *new_node = calloc(1, sizeof(Node));
|
|
|
|
new_node->value = v;
|
|
new_node->next = next;
|
|
new_node->prev = prev;
|
|
|
|
return new_node;
|
|
}
|
|
|
|
/**
|
|
* Delete Node structure and its contents.
|
|
*
|
|
* @param n Pointer to Node structure.
|
|
* @param release Whether or not to free the string value.
|
|
**/
|
|
void node_delete(Node *n, bool release) {
|
|
if (release) {
|
|
free(n->value.string);
|
|
}
|
|
|
|
free(n);
|
|
}
|
|
|
|
/* vim: set sts=4 sw=4 ts=8 expandtab ft=c: */
|