以下为按照数据结构教程正确编写且注释丰富的希尔排序实现案例:
#include<iostream>
#include <string>
#define error 0
#define ok 1
using namespace std;
#define MAXSIZE 200
typedef int Key;
typedef struct {
Key key;
string name;
}Student;
typedef struct {
Student r[MAXSIZE + 1]; //数组
int length; //数组长度
}SqList;
//-----------------以上为定义类型, 宏
void Init_sq(SqList& sq); //初始化
int Insert(SqList& sq, int i, Student s); //插入
void ShellSort(SqList& L); //希尔排序主程序
void ShellInsert(SqList& sq, int dk); //希尔排序遍历程序
//--------------以上1,2为链表基本操作声明 3,4为希尔排序函数声明
int main() {
SqList sq;
Init_sq(sq);
Student sq0 = { 11,"bai" };
Student sq1 = { 22,"cai" };
Student sq2 = { 33,"dai" };
Student sq