笔试题1
已知一个顺序表 L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功).
/递增排序 1 2 30 40 55
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;
}
/
笔试题2
删除顺序表 L中下标为p(0<=p<=length-1) 的元素,成功返回 1,否则返回 0,并将被删除元素的值赋给 e。
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;
}
标签:顺序,temp,int,SeqList,元素,笔试,数据结构,Day
From: https://www.cnblogs.com/liuliuye/p/18151230