Ignore:
Timestamp:
Nov 8, 2009, 8:39:03 PM (16 years ago)
Author:
bird
Message:

Templated red-black trees - kick off.

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/include/k/kRbU32.h

    r33 r35  
    11/* $Id$ */
    22/** @file
    3  * kAvl - AVL Tree Implementation, KU32 keys.
     3 * kRb - Red-Black Tree Implementation, KU32 keys.
    44 */
    55
    66/*
    7  * Copyright (c) 2006-2007 Knut St. Osmundsen <bird-kStuff-spamix@anduin.net>
     7 * Copyright (c) 2006-2009 Knut St. Osmundsen <bird-kStuff-spamix@anduin.net>
    88 *
    99 * Permission is hereby granted, free of charge, to any person
     
    2929 */
    3030
    31 #ifndef ___k_kAvlU32_h___
    32 #define ___k_kAvlU32_h___
     31#ifndef ___k_kRbU32_h___
     32#define ___k_kRbU32_h___
    3333
    34 typedef struct KAVLU32
     34typedef struct KRBU32
    3535{
    3636    KU32                mKey;
    37     KU8                 mHeight;
    38     struct KAVLU32     *mpLeft;
    39     struct KAVLU32     *mpRight;
    40 } KAVLU32, *PKAVLU32, **PPKAVLU32;
     37    KBOOL               mfRed;
     38    struct KRBU32      *mpLeft;
     39    struct KRBU32      *mpRight;
     40} KRBU32;
     41typedef KRBU32  *PRBU32;
     42typedef KRBU32 **PPRBU32;
    4143
    42 /*#define KAVL_EQUAL_ALLOWED*/
    43 #define KAVL_CHECK_FOR_EQUAL_INSERT
    44 #define KAVL_MAX_STACK          32
    45 /*#define KAVL_RANGE */
    46 /*#define KAVL_OFFSET */
    47 #define KAVL_STD_KEY_COMP
    48 #define KAVLKEY                 KU32
    49 #define KAVLNODE            KAVLU32
    50 #define KAVL_FN(name)           kAvlU32 ## name
    51 #define KAVL_TYPE(prefix,name)  prefix ## KAVLU32 ## name
    52 #define KAVL_INT(name)          KAVLU32INT ## name
    53 #define KAVL_DECL(rettype)      K_DECL_INLINE(rettype)
     44/*#define KRB_EQUAL_ALLOWED*/
     45#define KRB_CHECK_FOR_EQUAL_INSERT
     46/*#define KRB_RANGE */
     47/*#define KRB_OFFSET */
     48#define KRB_MAX_STACK           48
     49#define KRB_STD_KEY_COMP
     50#define KRBKEY                  KU32
     51#define KRBNODE                 KRBU32
     52#define KRB_FN(name)            kRbU32 ## name
     53#define KRB_TYPE(prefix,name)   prefix ## KRBU32 ## name
     54#define KRB_INT(name)           KRBU32INT ## name
     55#define KRB_DECL(rettype)       K_DECL_INLINE(rettype)
    5456
    55 #include <k/kAvlTmpl/kAvlBase.h>
    56 #include <k/kAvlTmpl/kAvlDoWithAll.h>
    57 #include <k/kAvlTmpl/kAvlEnum.h>
    58 #include <k/kAvlTmpl/kAvlGet.h>
    59 #include <k/kAvlTmpl/kAvlGetBestFit.h>
    60 #include <k/kAvlTmpl/kAvlGetWithParent.h>
    61 #include <k/kAvlTmpl/kAvlRemove2.h>
    62 #include <k/kAvlTmpl/kAvlRemoveBestFit.h>
    63 #include <k/kAvlTmpl/kAvlUndef.h>
     57#include <k/kRbTmpl/kRbBase.h>
     58#include <k/kRbTmpl/kRbDoWithAll.h>
     59#include <k/kRbTmpl/kRbEnum.h>
     60#include <k/kRbTmpl/kRbGet.h>
     61#include <k/kRbTmpl/kRbGetBestFit.h>
     62#include <k/kRbTmpl/kRbGetWithParent.h>
     63#include <k/kRbTmpl/kRbRemove2.h>
     64#include <k/kRbTmpl/kRbRemoveBestFit.h>
     65#include <k/kRbTmpl/kRbUndef.h>
    6466
    6567#endif
Note: See TracChangeset for help on using the changeset viewer.