#include "../stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "ptree.h"
Go to the source code of this file.
Classes | |
struct | ptree_node |
Functions | |
static ptree_node_t * | _find_min (ptree_node_t *pn, int *levelp) |
static ptree_node_t * | _find_succ (ptree_node_t *pn, int *levelp) |
static void | _remove_node (ptree_node_t **rootp, ptree_node_t *pn, void **oldval) |
static ptree_walk_res_t | _visit (struct ptree_node *pn, int level, void *arg1, void *arg2) |
static int | _walk_int (struct ptree_node *pn, ptree_order_t order, int level, ptree_walk_res_t(*func)(struct ptree_node *, int level, void *, void *), void *arg1, void *arg2) |
static int | _walk_to (void *v, struct ptree_node **startp, struct ptree_node ***pp, int(*cmp)(const void *v1, const void *v2)) |
void | ptree_clear (ptree_node_t **rootp) |
ptree_walk_res_t | ptree_clear_func (struct ptree_node *pn, int level, void *arg1, void *arg2) |
int | ptree_contains (void *v, ptree_node_t *parentp, int(*cmp)(const void *v1, const void *v2), void **nodeval) |
int | ptree_inorder_walk_remove (ptree_node_t **rootp, void **oldval, void *pn, int(*cmp)(const void *v1, const void *v2)) |
int | ptree_remove (void *v, ptree_node_t **rootp, int(*cmp)(const void *v1, const void *v2), void **oldval) |
int | ptree_replace (void *v, ptree_node_t **rootp, int(*cmp)(const void *v1, const void *v2), void **oldval) |
ptree_walk_res_t | ptree_walk (ptree_node_t *start, ptree_order_t order, ptree_walk_res_t(*func)(const void *v1, int level, void *arg, void *ptree_inorder_walking_remove_arg), int(*cmp)(const void *v1, const void *v2), void *arg) |
static ptree_node_t* _find_min | ( | ptree_node_t * | pn, |
int * | levelp | ||
) | [static] |
static ptree_node_t* _find_succ | ( | ptree_node_t * | pn, |
int * | levelp | ||
) | [static] |
static void _remove_node | ( | ptree_node_t ** | rootp, |
ptree_node_t * | pn, | ||
void ** | oldval | ||
) | [static] |
static ptree_walk_res_t _visit | ( | struct ptree_node * | pn, |
int | level, | ||
void * | arg1, | ||
void * | arg2 | ||
) | [static] |
static int _walk_int | ( | struct ptree_node * | pn, |
ptree_order_t | order, | ||
int | level, | ||
ptree_walk_res_t(*)(struct ptree_node *, int level, void *, void *) | func, | ||
void * | arg1, | ||
void * | arg2 | ||
) | [static] |
static int _walk_to | ( | void * | v, |
struct ptree_node ** | startp, | ||
struct ptree_node *** | pp, | ||
int(*)(const void *v1, const void *v2) | cmp | ||
) | [static] |
void ptree_clear | ( | ptree_node_t ** | rootp | ) |
ptree_walk_res_t ptree_clear_func | ( | struct ptree_node * | pn, |
int | level, | ||
void * | arg1, | ||
void * | arg2 | ||
) |
int ptree_contains | ( | void * | v, |
ptree_node_t * | parentp, | ||
int(*)(const void *v1, const void *v2) | cmp, | ||
void ** | nodeval | ||
) |
int ptree_inorder_walk_remove | ( | ptree_node_t ** | rootp, |
void ** | oldval, | ||
void * | pn, | ||
int(*)(const void *v1, const void *v2) | cmp | ||
) |
int ptree_remove | ( | void * | v, |
ptree_node_t ** | rootp, | ||
int(*)(const void *v1, const void *v2) | cmp, | ||
void ** | oldval | ||
) |
int ptree_replace | ( | void * | v, |
ptree_node_t ** | rootp, | ||
int(*)(const void *v1, const void *v2) | cmp, | ||
void ** | oldval | ||
) |
ptree_walk_res_t ptree_walk | ( | ptree_node_t * | start, |
ptree_order_t | order, | ||
ptree_walk_res_t(*)(const void *v1, int level, void *arg, void *ptree_inorder_walking_remove_arg) | func, | ||
int(*)(const void *v1, const void *v2) | cmp, | ||
void * | arg | ||
) |