数据结构-顺序表实验

1、顺序表定义

2、顺序表创建、 插入、删除、查 找等功能的实现

3、顺序表的 测试运行

4、实现代码

#include
#define MAXSIZE 100
using namespace std;
typedef struct   //定义一个结构体类型
{
	int length;
	int* data;
	int max;

}SqList;

void InitSqList(SqList& L)//顺序表初始化
{
	L.data = new int[MAXSIZE];
	L.length = 0;
	L.max = MAXSIZE;
}

void WriteList(SqList& L)//把0-9放入顺序表
{
	for (int i = 0; i < 10; i++)
	{
		L.data[i] = i;
		L.length++;
	}

}

int GetData(SqList L, int i) //获取第i位置的元素D
{
	if (i<1 || i>L.length)
		return 0;
	return L.data[i - 1];

}
void PrintList(SqList L)   //打印顺序表
{
	for (int i = 0; i < L.length; i++)
		cout << L.data[i] << " ";
	cout << "\n";

}
int GetLocat(SqList L, int D)//获取元素D的位置
{
	if (L.length < 1)
		return 0;
	for (int i = 0; i < L.length; i++)
		if (L.data[i] == D)
			return L.data[i + 1];
}
int InsertList(SqList& L, int w, int d)//插入元素
{
	if (w<1 || w>L.length + 1)
		return 0;
	if (L.length == MAXSIZE)
		cout << "存储空间已满" << endl;
	for (int i = L.length - 1; i >= w - 1; i--)
		L.data[i + 1] = L.data[i];
	L.data[w - 1] = d;
	L.length++;
	return 1;
}

int DeletSqList(SqList& L, int w)//删除元素
{
	if (w<1 || w>L.length)
		return 0;
	for (int i = w; i < L.length; i++)
		L.data[w] = L.data[w - 1];
	L.length--;

}
int main()
{
	int plocate = 7;  //测试用的  位置7
	int pdata = 3;   //测试用的  数据3
	int w;
	int data;
	SqList L;
	InitSqList(L);
	WriteList(L);//将0-9写入顺序表
	PrintList(L);  //测试打印顺序表
	data = GetData(L, plocate);    //测试获取第7个元素   
	cout << "第" << plocate << "的元素是" << data;
	cout << "\n";
	w = GetLocat(L, pdata);//测试获取元素3的位置
	cout << "元素" << pdata << "的位置在第" << w;
	cout << "\n";
	InsertList(L, plocate, pdata); //测试把3插在第7个位置
	PrintList(L);
	DeletSqList(L, pdata);//测试删除元素3,只删除第一个
	PrintList(L);
	return 0;
}

你可能感兴趣的:(数据结构,算法)