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

#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 ;
}