数据结构有关插入排序的一些问题

#include "stdio.h"
#include "stdlib.h"
#define N 100
/* 排序表的存储结构 */
typedef int KeyType;
typedef struct {
KeyType key;
/*...*/
} RedType;
typedef struct {
RedType r[N];
int length; } SqList;

/* 顺序表的基本操作 */

/******* 1.初始化顺序表 ******/
void InitList(SqList *L)
{ L->length=0; }

/******* 2.销毁顺序表 ******/
void DestroyList(SqList *L)
{ free(L->r); }

/******* 3.遍历顺序表并输出(数组下标法) ******/
void ListTraverse(SqList L)
{ int i;
printf("\nList:\t(%d)\t",L.r[0].key);
for(i=1; i<=L.length; i++)
printf("%d\t",L.r[i].key); }

/******* 4.由键盘输入顺序表元素 ******/
void InputElem(SqList *L)
{ int i,n;
printf("\n请输入元素个数:");
scanf("%d",&n);
printf("\n请输入%d个元素:\n",n);
for(i=1; i<=n; i++)
scanf("%d",&L->r[i].key);
L->length=n; }

/***** 插入排序 *****/
void InsertSort ( SqList &L) {
for ( i=2; i<=L.length; i++ )
if (ListTraverse(L.r[i].key,L.r[i-1].key)) {
L.r[0] = L.r[i];
L.r[i] = L.r[i-1];
for ( j=i-2; ListTraverse(L.r[0].key,L.r[j].key); j-- )
L.r[j+1] = L.r[j];
L.r[j+1] = L.r[0];

}
}

/* 主函数 */
main()
{ SqList L;
InitList(&L);
InputElem(&L); ListTraverse(L);
}

哪位高手给修改下 错误在哪/最好有说明```````

#include "stdio.h"
#include "stdlib.h"
#define N 100
/* 排序表的存储结构 */
typedef int KeyType;
typedef struct {
KeyType key;
/*...*/
} RedType;
typedef struct {
RedType r[N];
int length; } SqList;

/* 顺序表的基本操作 */

/******* 1.初始化顺序表 ******/
void InitList(SqList *L)
{ L->length=0; }

/******* 2.销毁顺序表 ******/
void DestroyList(SqList *L)
{ free(L->r); }

/******* 3.遍历顺序表并输出(数组下标法) ******/
void ListTraverse(SqList L)
{ int i;
printf("\nList:\t(%d)\t",L.r[0].key);
for(i=1; i<=L.length; i++)
printf("%d\t",L.r[i].key); }

/******* 4.由键盘输入顺序表元素 ******/
void InputElem(SqList *L)
{ int i,n;
printf("\n请输入元素个数:");
scanf("%d",&n);
printf("\n请输入%d个元素:\n",n);
for(i=1; i<=n; i++)
scanf("%d",&L->r[i].key);
L->length=n; }

/***** 插入排序 *****/
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];
L->r[i] = L->r[i-1];
for ( j=i-2;L->r[0].key < L->r[j].key; j-- )
L->r[j+1] = L->r[j];
L->r[j+1] = L->r[0];

}
}

/* 主函数 */
int main()
{ SqList L;
InitList(&L);
InputElem(&L);
InsertSort(&L);
ListTraverse(L);
}

简单的改了改,没有好好测试 。主要是语法错误较多,建议再看看语法。
温馨提示:答案为网友推荐,仅供参考