网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月19日漏签0天
数据结构吧 关注:104,521贴子:883,603
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1回复贴,共1页
<<返回数据结构吧
>0< 加载中...

新手求助

  • 取消只看楼主
  • 收藏

  • 回复
  • Ed七道
  • 邻接表
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我写了个关于队列解决基数排列问题,调试没错了,但是总是不能运行,求大神帮忙看一下!


  • Ed七道
  • 邻接表
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
class node
{
public:
int data;
node *next;
node():data(0),next(0){};
node(int item, node *pnext): data(item),next(pnext){};
};
class LinkedQueue
{
public:
LinkedQueue();
~LinkedQueue();
void push(int& item);
void pop();
int& top();
bool empty();
int size();
private:
node* Header;
node* EndNode;
int count;
};
LinkedQueue::LinkedQueue (){count=0;Header=NULL; EndNode = Header;}
LinkedQueue::~LinkedQueue()
{
node* A;
for(;Header!=NULL;)
{
A=Header->next;
delete Header;
Header=A;
}
}
void LinkedQueue::push(int& item)
{
node *newnode=new node (item, 0);
EndNode->next = newnode;
EndNode = EndNode->next;
count++;
}
void LinkedQueue::pop()
{
node *tmp=Header;
Header=Header->next;
delete tmp;
count--;
}
int& LinkedQueue::top()
{
return Header->data;
}
bool LinkedQueue::empty()
{
return count == 0;
}
int LinkedQueue::size()
{
return count;
}
void distribute( vector<int>& v, LinkedQueue digitQueue[], int power)
{
int i;
for (i = 0; i < v.size(); i++)
digitQueue[(v[i] / power) % 10].push(v[i]);
}
void collect(LinkedQueue digitQueue[], vector<int>& v)
{
int i = 0, digit;
for (digit = 0; digit < 10; digit++)
while (!digitQueue[digit].empty())
{
v[i] = digitQueue[digit].top();
digitQueue[digit].pop();
i++;
}
}
void radixSort(vector<int>& v, int d)
{
int i;
int power = 1;
LinkedQueue digitQueue[10];
for (i=0;i < d;i++)
{
distribute(v, digitQueue, power);
collect(digitQueue, v);
power *= 10;
}
}
void displayVector(const vector<int>& v);
int main()
{
int a[]={8,32,56,128,325,991};
vector<int> intVector(a,a+6);
radixSort(intVector, 3);
displayVector(intVector);
return 0;
}
void displayVector(const vector<int>& v)
{
int i;
for (i=0; i < v.size(); i++)
{
cout << setw(12) << v[i];
if ((i+1) % 6 == 0)
cout << endl;
}
cout << endl;
}I


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回数据结构吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示