view src/core/ngx_rbtree.h @ 206:9aa426375256

nginx-0.0.1-2003-12-05-10:11:46 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 05 Dec 2003 07:11:46 +0000
parents 4a9a2b1dd6fa
children 6e0fef527732
line wrap: on
line source

#ifndef _NGX_RBTREE_H_INCLUDED_
#define _NGX_RBTREE_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>


typedef struct ngx_rbtree_s  ngx_rbtree_t;

struct ngx_rbtree_s {
   ngx_int_t       key;
   ngx_rbtree_t   *left;
   ngx_rbtree_t   *right;
   ngx_rbtree_t   *parent;
   char            color;
};

extern ngx_rbtree_t  sentinel;


void ngx_rbtree_insert(ngx_rbtree_t **root, ngx_rbtree_t *node);
void ngx_rbtree_delete(ngx_rbtree_t **root, ngx_rbtree_t *node);


ngx_inline static ngx_rbtree_t *ngx_rbtree_min(ngx_rbtree_t *root)
{
   while (root->left != &sentinel) {
       root = root->left;
   }

   return root;
}


#endif /* _NGX_RBTREE_H_INCLUDED_ */