Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
bb_tree.h
Package: leda.tar.gz [view]
Upload User: gzelex
Upload Date: 2007-01-07
Package Size: 707k
Code Size: 2k
Category:
Mathimatics-Numerical algorithms
Development Platform:
MultiPlatform
- /*******************************************************************************
- +
- + LEDA-R 3.2.3
- +
- + bb_tree.h
- +
- + Copyright (c) 1995 by Max-Planck-Institut fuer Informatik
- + Im Stadtwald, 66123 Saarbruecken, Germany
- + All rights reserved.
- +
- *******************************************************************************/
- #ifndef LEDA_BB_TREE_H
- #define LEDA_BB_TREE_H
- //------------------------------------------------------------------------------
- //
- // bb_tree:
- //
- // BB[alpha] trees (derived from class "bin_tree")
- //
- // Stefan N"aher (1993)
- //
- //------------------------------------------------------------------------------
- #include <LEDA/basic.h>
- #include <LEDA/impl/bin_tree.h>
- typedef bin_tree_node* bb_tree_item;
- // ----------------------------------------------------------------
- // class bb_tree
- // ----------------------------------------------------------------
- // const float alpha = 0.28;
- // const float d = 0.58;
- // we multiply alpha, d, and all balances by 64 to make them integers
- const int alpha = 18; // 0.28 * 64
- const int d = 37; // 0.58 * 64
- class bb_tree : public bin_tree
- {
- int root_balance() { return 2; }
- int node_balance() { return 2; }
- int leaf_balance() { return 1; }
- void rebal(bb_tree_item,int);
- void insert_rebal(bb_tree_item);
- void del_rebal(bb_tree_item, bb_tree_item);
- float balance(bb_tree_item p)
- { if (p->is_leaf())
- return 0.5 ;
- else
- return float(p->child[left]->get_bal())/p->get_bal();
- }
- public:
- bb_tree() {}
- ~bb_tree() {}
- bb_tree(const bb_tree& T) : bin_tree(T) {}
- bb_tree& operator=(const bb_tree& T)
- { bin_tree::operator=(T); return *this; }
- };
- #endif