📄 heap.h
字号:
/* * File: heap.h * Author: Suman Banerjee <suman@cs.umd.edu> * Date: July 31, 2001 * Terms: GPL * * myns simulator */#ifndef _HEAP_H_#define HEAP_H_enum TreeDirection { LEFT, RIGHT, INVALID};struct HeapElement { void *key; long int unique; void *value; HeapElement *left; HeapElement *right; HeapElement *parent;};struct Heap { HeapElement *root; int num_elements; int completed_levels;};Heap *init_heap (void);void delete_heap (Heap *h);void delete_tree (HeapElement *he);bool is_empty (Heap *h);TreeDirection locate_parent_for_next_insert (Heap *h, HeapElement*& p);void exchange_node_with_parent (Heap *h, HeapElement *he);void exchange_nodes (Heap *h, HeapElement *h1, HeapElement *h2);void* heap_insert (Heap *h, void *key, void *value, int (*compare_fn)(void*,void*));void heapify_upwards (Heap *h, HeapElement *he, int (*compare_fn)(void*,void*));void heapify_downwards (Heap *h, HeapElement *he, int (*compare_fn)(void*,void*));void output_heap (Heap *h, void (*output_fn)(void*));void traverse_heap (HeapElement *he, int levels, void (*output_fn)(void*));void heap_lookup_data (void *pos, void*& key, void* & value);void heap_lookup_min (Heap *h, void*& key, void* & value);int heap_extract_data (Heap *h, void* pos, void*& key, void*& value, int (*compare_fn)(void*,void*));int heap_extract_min (Heap *h, void*& key, void*& value, int (*compare_fn)(void*,void*));void* locate_data (Heap *h, void *value);void* locate_data_in_subtree (Heap *h, HeapElement *he, void *value);int compare_function_wrapper (long int u1, void * k1, long int u2, void * k2, int (*compare_fn)(void*,void*));int heap_menu (void);int cmp (int n1, int n2);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -