{
return -1;
}
for (i = from; i < sqList.iLength; i++)
{
if (sqList.data[i] == elem)
{
return i;
}
}
return -1;
}
/************************************************************************
函数名: Unique
作 者: 谭友亮(Charles Tan)
日 期: 2013-4-12
作 用: 将顺序表中的重复元素删除
形参数:
返回值:
************************************************************************/
void CSequenceList::Unique()
{
int i, index;
for(i = 0; i < sqList.iLength - 1; i++)
{
index = i + 1;
while ((index = Find(index, sqList.data[i])) >= 0)
{
Delete(index);
}
}
}
/************************************************************************
函数名: MergeList
作 者: 谭友亮(Charles Tan)
日 期: 2013-4-12
作 用: 将两个有序表合并
形参数:
返回值:
************************************************************************/
CSequenceList CSequenceList::MergeList(CSequenceList& listA)
{
int i, j, k;
CSequenceList listSeq;
i = j = k = 0;
while(i < sqList.iLength && j < listA.sqList.iLength)
{
if (sqList.data[i] < listA.sqList.data[j])
{
listSeq.Insert(listSeq.sqList.iLength, sqList.data[i++]);
}
else
{
listSeq.Insert(listSeq.sqList.iLength, listA.sqList.data[j++]);
}
}
while(i < sqList.iLength)
{
listSeq.Insert(listSeq.sqList.iLength, sqList.data[i++]);
}
while(j < listA.sqList.iLength)
{
listSeq.Insert(listSeq.sqList.iLength, listA.sqList.data[j++]);
}
return listSeq;
}
/************************************************************************
函数名: Reverse
作 者: 谭友亮(Charles Tan)
日 期: 2013-4-12
作 用: 逆转顺序表
形参数:
返回值:
************************************************************************/
void CSequenceList::Reverse()
{
int i;
DataType temp;
for(i = 0; i < sqList.iLength / 2 + sqList.iLength % 2; i++)
{
temp = sqList.data[i];
sqList.data[i] = sqList.data[sqList.iLength - i - 1];
sqList.data[sqList.iLength - i - 1] = temp;
}
}