2
我試圖實現從文件指數樹,但這裏是在代碼中一個地方,讓人聽不清楚,我如何實現它:指數樹實現
#include<iostream>
using namespace std;
struct node
{
int level;
int count;
node **child;
int data[];
};
int binary_search(node *ptr,int element)
{
if(element>ptr->data[ptr->count-1]) return ptr->count;
int start=0;
int end=ptr->count-1;
int mid=start+(end-start)/2;
while(start<end)
{
if(element>ptr->data[mid]) { start=mid+1;}
else
{
end=mid;
}
mid=start+(end-start)/2;
}
return mid;
}
void insert(node *root,int element)
{
node *ptr=root,*parent=NULL;
int i=0;
while(ptr!=NULL)
{
int level=ptr->level,count=ptr->count;
i=binary_search(ptr,element);
if(count<level){
for(int j=count;j<=i-1;j--)
ptr->data[j]=ptr->data[j-1];
}
ptr->data[i]=element;
ptr->count=count+1;
return ;
}
parent=ptr,ptr=ptr->child[i];
//Create a new Exponential Node at ith child of parent and
//insert element in that
return ;
}
int main()
{
return 0;
}
下面是紙我一個鏈接是指: http://www.ijcaonline.org/volume24/number3/pxc3873876.pdf 這個地方是在評論中,我怎麼能創建一個新的指數節點在i
級?喜歡這個?
parent->child[i]=new node;
insert(parent,element);
非常感謝謝謝@uesp – 2012-03-25 15:39:54