思路:设顺序表L为递增有序,从L的终端结点,往前遍历L,找到插入x的位置,插入x,将大于x的元素往后移动一个单位即可;另外,在往前扫描的过程中,可以边扫描边遍历。
代码:
typedef struct{
ElementType data[100];
int length;
}SeqList;//顺序表存储结构;
void InsertSeqList(SeqList L,ElementType x){
int i;//i指示位置;
for(i=L.length;i>0&&L.data[i-1]>x;--i){//从终端结点开始扫描,当找到第一个小于x的元素时终止;
L.data[i] = L.data[i-1];//交换;
}
//插入x,元素数++;
L.data[i] = x;
L.length++;
}