顺序表的算法操作

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
请按任意键继续. . .