数据元素类型
typedef int KeyType;
typedef struct {
KeyType key;
}RedType;
typedef struct {
RedType r[MAX + 1];
int length;
}SqList;
函数定义
int InitList_Sq(SqList& L);
void InsertSort(SqList& L);
void print(SqList L);
完整代码
#include<iostream>
using namespace std;
#define MAX 100
#define OK 1
typedef int KeyType;
typedef struct {
KeyType key;
}RedType;
typedef struct {
RedType r[MAX + 1];
int length;
}SqList;
int InitList_Sq(SqList& L);
void InsertSort(SqList& L);
void print(SqList L);
int main()
{
SqList L;
InitList_Sq(L);
InsertSort(L);
print(L);
return 0;
}
int InitList_Sq(SqList& L)
{
int n, k = 1;
L.length = 0;
while (1)
{
cin >> n;
if (n == -1)
break;
L.r[k++].key = n;
L.length++;
}
return OK;
}
void InsertSort(SqList& L)
{
int i, j;
for (i = 2; i <= L.length; i++)
{
if (L.r[i].key < L.r[i - 1].key)
{
L.r[0] = L.r[i];
for (j = i - 1; L.r[0].key < L.r[j].key; j--)
L.r[j + 1] = L.r[j];
L.r[j + 1] = L.r[0];
}
}
}
void print(SqList L)
{
for (int i = 1; i <= L.length; i++)
cout << L.r[i].key << ' ';
cout << endl;
}
运行结果示例
![在这里插入图片描述](https://img-blog.csdnimg.cn/b94a2e6e2907400090b5c29bd1203b5a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmU65LuO6Zu25byA5aeL55qE5Luj56CB55Sf5rS7,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)