summaryrefslogtreecommitdiff
path: root/src/libdatastruct/avltree_newnode.c
blob: 07cb8138edca62a240cfb486cbadd896ae4bf0ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* ISC license. */

#include <stdint.h>
#include <errno.h>
#include <skalibs/gensetdyn.h>
#include <skalibs/avlnode.h>
#include <skalibs/avltree.h>

int avltree_newnode (avltree *t, uint32_t data, uint32_t *i)
{
  if (!gensetdyn_new(&t->x, i)) return 0 ;
  {
    avlnode *s = avltree_nodes(t) ;
    s[*i].data = data ;
    s[*i].child[0] = s[*i].child[1] = UINT32_MAX ;
    s[*i].balance = 0 ;
  }
  return 1 ;
}