hashsort

搞了好几天 终于弄个内存出错不是很厉害的版本....

#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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值