【数据结构】天勤线性表问题

问题描述:设计一个算法,从一给定的顺序表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;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_35564841/article/details/81135174