笔试题

笔试题

己知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。

int SeqList_Remove(*L,int p)
{
	//判断顺序表的地址是否有效
	if(NULL == L)
	{
		return 0;
	}

	int e = 0; //变量e,记录待删除元素的值


	//把待删除元素的值备份到变量e中
	e = L[p];

	//把待删除元素的后继元素向前移动一个单位
	for (int i = p; i < length; ++i)
	{
		L[i] = L[i+1];
	}

	return 1;
}

删除顺序表L中下标为p(0≤p≤length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e


void  SeqList_Insert(SeqList *L,int x)
{
	int temp = -1; //记录待插入元素的下标

	//遍历顺序表,找到插入位置,比较元素
	for (int i = 0; i <= last; ++i)
	{
		if (x < L[i])
		{
			temp = i;
			break;
		}
	}

	if( -1 == temp)
	{
		L[last+1] = x;
		return;
	}

	//把待插入位置的后继元素向后移动
	for (int i = last; i >= temp; i--)
	{
		L[i+1] = L[i];
	}

	L[temp] = x;
}
posted @ 2024-04-22 23:42  红枫叶$$  阅读(11)  评论(0)    收藏  举报