// 法一 直接遍历 找到 L->Data[i] < X < L->Data[i]+1
// 法二 二分查找 找到对应数组index
bool Insert( List L, ElementType X )
{
int left = 0,right = L->Last,mid;
if(L->Last==MAXSIZE-1) return false;// 表满,无法插入
while (left <= right) {
mid = (left + right) / 2;
if (L->Data[mid] > X) {
left = mid + 1;
}
else if (L->Data[mid] < X) {
right = mid - 1;
}
else if(L->Data[mid] == X){
return false; //表中已有该元素, 无法插入
}
} // left 为插入的位序
for(int j = L->Last; j >= left; j-- ){
L->Data[j+1] = L->Data[j];
}
L->Data[left] = X;
L->Last ++;
return true;
}