顺序表的算法操作
1、顺序表
顺序表就是把线性表中的所有元素按照其逻辑顺序,依次存储到从指定的存储位置开始的一块连续的存储空间中。
2、算法代码
#define maxSize 100
typedef struct//typedef声明新的类型名来代替已有的类型名
{
int data[maxSize];
int length;
}SequenceList;
int queryData(SequenceList sl, int value)
{
int i;
for (i = 0; i < sl.length; ++i)
if (value == sl.data[i])
return i;
return -1;
}
int insertData(SequenceList &sl, int position, int vaule)
{
int i;
if (position < 0 || position > sl.length - 1 || sl.length == maxSize)
return -1;
for (i = sl.length - 1; i >= position; --i)
sl.data[i + 1] = sl.data[i];
sl.data[position] = vaule;
++(sl.length);
return 1;
}
int deleteData(SequenceList &sl, int position)
{
int i;
if (position < 0 || position > sl.length - 1)
return -1;
for (i = position + 1; i <= sl.length - 1; ++i)
sl.data[i - 1] = sl.data[i];
--(sl.length);
return 1;
}
void main()
{
SequenceList sl;
sl.data[0] = 1;
sl.data[1] = 2;
sl.data[2] = 3;
sl.length = 3;
printf("%d\n", queryData(sl, 1));
insertData(sl, 0, 0);
printf("%d\n", queryData(sl, 1));
deleteData(sl, 0);
printf("%d\n", queryData(sl, 1));
system("pause");
}
3、运行结果
0
1
0
请按任意键继续. . .