summaryrefslogtreecommitdiff
path: root/src/libdatastruct/avltree_newnode.c
blob: 934da2cf8aa6652a0b835befb8ae7c2080f6b7ad (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, unsigned int data, unsigned int *i)
{
  if (!gensetdyn_new(&t->x, i)) return 0 ;
  {
    register avlnode *s = avltree_nodes(t) ;
    s[*i].data = data ;
    s[*i].child[0] = s[*i].child[1] = (unsigned int)-1 ;
    s[*i].balance = 0 ;
  }
  return 1 ;
}