1.删除
1.删除有序顺序表中所有相同元素,让表无重复**
int i, j;
for (i = 0, j = 1; j < L.length; j++)
{
if (L->data[i] != = L->data[j])
L->data[++i] = L->data[j];
L.length = i + 1
}
2.合并
1.两个有序顺序表,合并成一个(w7)
bool Merge(Seqlis &L1, &L2, &L3)
{
1.完备性判断
2. int i, j, k = 0;
while (小于表长)
{
if (L1.data[i] <= L2.data[j])
L3.data[k++] = L1.data[i++];
else
L3.data[k++] = L1.data[j++];
}
3.当其中一个表检查完了 while (i < L1.length)
L3.data[k++] = L1.data[i++];
L2也一样
4. 更新表长,返回值
}
逆置
1.ab更为ba(w8)
void reverse(DataType A[], int left, int right,边界值arraysize)
{
1.完备性判断
2.逆置方法:
int mid = (left + right) / 2;
找一个中间变量
// for(int i=0;i<mid;i++)//这里的条件很关键
for (int i = 0; i <= mid - left; i++)
{
//三步常用逆置
temp = data[left + i];
data[left + i] = data[right - i];
data[right - i] = temp;
}
}