• 大小: 3.35KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-02-22
  • 标签: C语言  队列  排序  语言  

资源简介

从键盘上输入n个程度为m的整数,要求输出这些整数的升序排列。

资源截图

代码片段和文件信息

#include
#include
#include

#define Radix 10          //代表Radix(10)个队列

typedef int QElemType;
typedef struct
{
    QElemType *base;       //初始化的动态分配空间,存储数据
    int front;              //头指针,指向队列头元素,用来移动
    int rear;               //尾指针,指向队列尾元素的下一位置,确定长度
} SqQueue;


//distribute进行第n趟分配
//原始数据保存在Q.base数组中
//ArrType是SqQueue类型的数组,
void distribute(SqQueue &Qint nSqQueue ArrType[])
{
    //quot-商
    //rem-存储每个数据的第n位(即第1位、第2位...第n位)的值
    int ictempquotrem;
    //for置空Radix(10)个队列
    for(i=0; i        ArrType[i].front=0;
    //for处理每个数据的第n位
    for(i=0; i    {
        //将第i个数据暂存到quot
        quot=Q.base[i];
        c=0;
        //while计算第i个数据的第n位的值并保存到rem
        while(c        {
            c++;
            rem=quot%Radix;
            quot/=Radix;
        }
        //将第n位为rem的数据复制到第rem个队列
        //即根据数据的第n位的数字rem,将数据分配到第rem个队列的尾部
        ArrType[rem].base[ArrType[rem].front++]=Q.b

评论

共有 条评论