问题描述:设计一个算法,从一给定的顺序表L中删除下标i<j(j<=j,包括i,j)的所有元素。
void deleteAtoB(LinkList *List, int i, int j)
{
if (i<0 || j>(List->length) - 1 || j < i)
{
cout << "location illegal!" << endl;
return;
}
int now = j + 1;
int difference = j - i + 1;//两数之差
while (now < List->length)
{
List->data[now - difference] = List->data[now];
now++;
}
List->length -= difference;
}
问题描述:有一个顺序表L,设计一个算法,将L中所有小于表头元素的整数放在前半部分,大于表头元素的整数部分放在后半部分。
void resort(LinkList *List)
{
for (int i = List->length - 1; i > 1; i--)
{
if (List->data[i] < List->data[0])//所在元素小于表头元素
{
int backup = List->data[i];
for (int j = i - 1; j > 0; j--)
{
List->data[j + 1] = List->data[j];
}
List->data[1] = backup;
}
}
}