搞了好几天 终于弄个内存出错不是很厉害的版本....
#include<iostream>
#include<vector>
using namespace std;
class node
{
int data;
node* next;
public:
node(int d=0,node* n=0):data(d),next(n){}
~node(){delete next;}
void set_data(int d){data=d;}
int get_data(){return data;}
void set_next(node* n){next=n;}
node* get_next(){return next;}
void show(){cout<<data<<' ';next->show();}
};
void insert(vector<node*>&,int,int);
void hash(vector<node*>&);
void insert(vector<node*>& arr,int dat,int sta)
{
node* tmp=arr.at(sta);
for(;(tmp->get_next()!=arr.at(sta+1))&&(tmp->get_next()->get_data()<dat);tmp=tmp->get_next());
if(tmp->get_next()!=arr.at(sta+1))
{
node* add=new node(dat,tmp->get_next());
tmp->set_next(add);
}
else
{
node* add=new node(dat,arr.at(sta+1));
tmp->set_next(add);
}
}
void hash(vector<node*>& arr)
{
int dat;
int pos;
cout<<"input data:";
while(cin>>dat)
{
node* temp=new node(dat,0);
pos=dat/10;
if(!arr.at(pos))
{
arr.at(pos)=temp;
temp->set_next(arr.at(pos+1));
}
else
insert(arr,dat,pos);
temp=0;
cout<<"input data:";
}
}
int main()
{
vector<node*> array(10,0);
hash(array);
array.at(0)->show();
return 0;
}