embox

Форк
0
/
tree_children.c 
43 строки · 970.0 Байт
1
/**
2
 * @file
3
 * @brief Implementation of methods in util/tree.h
4
 *
5
 * @date Oct 8, 2011
6
 * @author Avdyukhin Dmitry
7
 */
8

9
#include <assert.h>
10
#include <stddef.h>
11

12
#include <lib/libds/dlist.h>
13
#include <lib/libds/tree.h>
14

15
struct tree_link *tree_children_begin(struct tree_link *tree) {
16
	struct dlist_head *lnk;
17

18
	if (NULL == (lnk = (dlist_first_or_null(&tree->children)))) {
19
		return NULL;
20
	}
21

22
	return dlist_entry(lnk, struct tree_link, list_link);
23
}
24

25
struct tree_link *tree_children_end(struct tree_link *tree) {
26
	struct dlist_head *lnk;
27

28
	if (dlist_empty(&tree->children)) {
29
		return NULL;
30
	}
31

32
	lnk = dlist_prev(&tree->children);
33

34
	return dlist_entry(lnk->next, struct tree_link, list_link);
35
}
36

37
struct tree_link *tree_children_next(struct tree_link *tree) {
38
	return dlist_entry(tree->list_link.next, struct tree_link, list_link);
39
}
40

41
struct tree_link *tree_children_prev(struct tree_link *tree) {
42
	return dlist_entry(tree->list_link.next, struct tree_link, list_link);
43
}
44

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.