Data Structures Lerax 1.0.0
Essential Data Structures for C language
Loading...
Searching...
No Matches
list.h
Go to the documentation of this file.
1
12
13#ifndef LIST_H
14#define LIST_H
15
20struct ListNode {
21 int data;
22 struct ListNode *next;
23};
24
26typedef struct ListNode List;
27
28#define EMPTY_LIST (List*) 0
29
30 /******************/
31 /* PUBLIC METHODS */
32 /******************/
33
38
46
54
62
70
76
77
83
89
90
96
97
105
110
116
117
121int list_equal(List* l_x, List* l_y);
122
123
124 /**********************/
125 /* ADDITIONAL METHODS */
126 /**********************/
127
128
133
138
142int list_less_than(List *l, int n);
143
148
153
158
159
160 /****************/
161 /* UTIL METHODS */
162 /****************/
163
164
169List* list_init(int size_list, ...);
170
175
180
185
190
195
201
202 /*******************/
203 /* PRIVATE METHODS */
204 /*******************/
205
210
215
216#endif
List * list_search(List *l, int data)
Search on the list by data and return the node which contains it.
void list_free(List *l)
Free memory of List and its nodes.
List * list__new_node(int data)
Create a new node for the list.
int list_equal(List *l_x, List *l_y)
Check if two lists are equal.
void list_reverse(List **l)
Reverse a list (no creating a new) WARNING: side-effects.
List * list_append(List *l, int data)
Insert a new element on the end of the list.
void list_print_reverse(List *l)
Print the list reversed without a new line.
int list_less_than(List *l, int n)
Return the number of numbers less n.
List * list_concat(List *l_x, List *l_y)
Return a concatenation of the two lists as a new list.
List * list_tail(List *l)
Get the tail of the list.
List * list_copy(List *l)
Create a copy of the list l.
int list_head(List *l)
Get the data from the first element.
int list_sum(List *l)
Return the sum of numbers on the list.
List * list_insert(List *l, int data)
Insert a new element on the beginning of the list.
int list__is_perfect_number(int n)
Check if a given number is perfect.
int list_empty(List *l)
Verify if the list is empty.
List * list_create(void)
create a new list instance
int list_last(List *l)
Get the data from last element.
struct ListNode List
Definition list.h:26
List * list_remove(List *l, int data)
Remove specific element from List.
List * list_init(int size_list,...)
Create a list based on its variadic arguments.
void list_println(List *l)
Print the list with a new line.
int list_length(List *l)
Return the length of the list.
int list_pop_head(List **l)
Get and pop the head of the list.
void list_print(List *l)
Print the list without a new line.
List * list_insert_ord(List *l, int data)
Ordered insert of a new element in the list.
void list_println_reverse(List *l)
Print the list reversed with a new line.
int list_perfect(List *l)
Return the count of perfect numbers on list.
int list_pop_last(List **l)
Get and pop the last element of the list.
Definition list.h:20
int data
Definition list.h:21
struct ListNode * next
Definition list.h:22