麻烦看看,谢谢了
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
int randomlevel(void) //随机返回级别
{
int level;
for(level=0;(int)(2/(float)RAND_MAX * rand()); level++);
return level;
}
class level_node;
union node
{
int _value;
level_node *next;
};
class level_node
{
private:
int _value;
int level;
node *array_node;
public:
level_node(int level=0,int val=0):_value(val)
{
level=level+2;
array_node=new node[level];
array_node[0]._value=_value;
for(int i=1;i<level;i++)
array_node[i].next=NULL;
}
int value(){return array_node[0]._value;};
level_node *forward(int i){i++;if(i>=1&&i<level)return array_node[i].next;};
void set_next(int i,level_node *s)
{
i++;
if (i>=1&&i<level) array_node[i].next=s;
}
~level_node(){delete [] array_node;};
};
void main()
{
level_node *s=new level_node(0,10);
level_node *s1=new level_node(0,11);
cout<<s->value()<<endl;
s->set_next(0,s1);
cout<<s->forward(0)->value()<<endl;
system("pause");
}