Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

skiplist.c File Reference

#include <volume_io/internal_volume_io.h>
#include <bicpl/data_structures.h>
#include <bicpl/prog_utils.h>

Include dependency graph for skiplist.c:

Include dependency graph

Go to the source code of this file.

Data Structures

struct  update_struct

Defines

#define MAX_SKIP_LEVELS   50
#define SKIP_P   0.5
#define ALLOC_SKIP_STRUCT(ptr, n_level)   ALLOC_VAR_SIZED_STRUCT( ptr, skip_struct *, n_level )

Functions

private int get_random_level (void)
public void initialize_skiplist (skiplist_struct *skiplist)
private BOOLEAN find_data_position (skiplist_struct *skiplist, float key, update_struct *update)
private void insert_data_in_skiplist (skiplist_struct *skiplist, update_struct *update, float key, void *data_ptr)
private void delete_entry_from_skiplist (skiplist_struct *skiplist, update_struct *update)
public void delete_skiplist (skiplist_struct *skiplist)
public BOOLEAN search_skiplist (skiplist_struct *skiplist, float key, void **data_ptr)
public BOOLEAN search_skiplist_and_return_pointer (skiplist_struct *skiplist, float key, skip_struct **entry_ptr, void **data_ptr)
public BOOLEAN insert_in_skiplist (skiplist_struct *skiplist, float key, void *data_ptr)
public BOOLEAN delete_from_skiplist (skiplist_struct *skiplist, float key, void **data_ptr)
public BOOLEAN get_first_skiplist_entry (skiplist_struct *skiplist, skip_struct **entry_ptr, float *key, void **data_ptr)
public BOOLEAN get_next_skiplist_entry (skip_struct **entry_ptr, float *key, void **data_ptr)


Define Documentation

#define ALLOC_SKIP_STRUCT ptr,
n_level   )     ALLOC_VAR_SIZED_STRUCT( ptr, skip_struct *, n_level )
 

Definition at line 47 of file skiplist.c.

Referenced by initialize_skiplist(), and insert_data_in_skiplist().

#define MAX_SKIP_LEVELS   50
 

Definition at line 39 of file skiplist.c.

Referenced by get_random_level(), and initialize_skiplist().

#define SKIP_P   0.5
 

Definition at line 40 of file skiplist.c.

Referenced by get_random_level().


Function Documentation

private void delete_entry_from_skiplist skiplist_struct skiplist,
update_struct update
 

Definition at line 189 of file skiplist.c.

References skip_struct::forward, skiplist_struct::header, skiplist_struct::level, and update_struct::update.

Referenced by delete_from_skiplist().

public BOOLEAN delete_from_skiplist skiplist_struct skiplist,
float  key,
void **  data_ptr
 

Definition at line 366 of file skiplist.c.

References skip_struct::data_ptr, delete_entry_from_skiplist(), find_data_position(), skip_struct::forward, and update_struct::update.

public void delete_skiplist skiplist_struct skiplist  ) 
 

Definition at line 253 of file skiplist.c.

References skip_struct::forward, and skiplist_struct::header.

private BOOLEAN find_data_position skiplist_struct skiplist,
float  key,
update_struct update
 

Definition at line 91 of file skiplist.c.

References skip_struct::forward, skiplist_struct::header, skip_struct::key, skiplist_struct::level, and update_struct::update.

Referenced by delete_from_skiplist(), insert_in_skiplist(), search_skiplist(), and search_skiplist_and_return_pointer().

public BOOLEAN get_first_skiplist_entry skiplist_struct skiplist,
skip_struct **  entry_ptr,
float *  key,
void **  data_ptr
 

Definition at line 403 of file skiplist.c.

References skip_struct::forward, skiplist_struct::header, and skip_struct::key.

public BOOLEAN get_next_skiplist_entry skip_struct **  entry_ptr,
float *  key,
void **  data_ptr
 

Definition at line 435 of file skiplist.c.

References skip_struct::forward, and skip_struct::key.

private int get_random_level void   ) 
 

Definition at line 228 of file skiplist.c.

References get_random_0_to_1(), MAX_SKIP_LEVELS, and SKIP_P.

Referenced by insert_data_in_skiplist().

public void initialize_skiplist skiplist_struct skiplist  ) 
 

Definition at line 63 of file skiplist.c.

References ALLOC_SKIP_STRUCT, skip_struct::forward, skiplist_struct::header, skiplist_struct::level, and MAX_SKIP_LEVELS.

private void insert_data_in_skiplist skiplist_struct skiplist,
update_struct update,
float  key,
void *  data_ptr
 

Definition at line 133 of file skiplist.c.

References ALLOC_SKIP_STRUCT, skip_struct::data_ptr, skip_struct::forward, get_random_level(), skiplist_struct::header, skip_struct::key, skiplist_struct::level, and update_struct::update.

Referenced by insert_in_skiplist().

public BOOLEAN insert_in_skiplist skiplist_struct skiplist,
float  key,
void *  data_ptr
 

Definition at line 335 of file skiplist.c.

References find_data_position(), and insert_data_in_skiplist().

public BOOLEAN search_skiplist skiplist_struct skiplist,
float  key,
void **  data_ptr
 

Definition at line 284 of file skiplist.c.

References skip_struct::data_ptr, find_data_position(), skip_struct::forward, and update_struct::update.

public BOOLEAN search_skiplist_and_return_pointer skiplist_struct skiplist,
float  key,
skip_struct **  entry_ptr,
void **  data_ptr
 

Definition at line 300 of file skiplist.c.

References skip_struct::data_ptr, find_data_position(), skip_struct::forward, and update_struct::update.


Generated on Wed Jul 28 09:11:19 2004 for BICPL by doxygen 1.3.7