31 lines
		
	
	
		
			643 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			643 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#include "CC_CSSTree.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//return the start position of searching the key.
							 | 
						||
| 
								 | 
							
								int CC_CSSTree::search(int key)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									int i=0;
							 | 
						||
| 
								 | 
							
									int curIndex=0;
							 | 
						||
| 
								 | 
							
									int curNode=0;
							 | 
						||
| 
								 | 
							
									int j=0;
							 | 
						||
| 
								 | 
							
									//search
							 | 
						||
| 
								 | 
							
									for(i=0;i<level;i++)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										for(j=0;j<blockSize;j++)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											if(ntree[curIndex+j]==-1)
							 | 
						||
| 
								 | 
							
												break;
							 | 
						||
| 
								 | 
							
											if(key<=ntree[curIndex+j])
							 | 
						||
| 
								 | 
							
												break;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										curNode=(fanout*(curNode)+j+1);
							 | 
						||
| 
								 | 
							
										curIndex=curNode*blockSize;
							 | 
						||
| 
								 | 
							
								//#ifdef DEBUG
							 | 
						||
| 
								 | 
							
								//		cout<<curNode<<", "<<j<<", "<<ntree[curIndex]<<";   ";
							 | 
						||
| 
								 | 
							
								//#endif
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									curIndex=(curNode-numNode)*blockSize;
							 | 
						||
| 
								 | 
							
									if(curIndex>numRecord) curIndex=numRecord-1;
							 | 
						||
| 
								 | 
							
									//cout<<"I: "<<curIndex<<", ";//cout<<endl;
							 | 
						||
| 
								 | 
							
									return curIndex;
							 | 
						||
| 
								 | 
							
								}
							 |