Bootstrap

从0实现顺序表

从0实现顺序表

//1.创建

const int N = 1e6 + 10;
int arr[N], n;

//2.尾插

void push_back(int x)
{
	arr[++n] = x;
}

//3.头插(从右向左)

void push_front(int x)
{
	int i = 0;
	for (i = n; i > 0; i--)
	{
		arr[i + 1] = arr[i];
	}
	arr[1] = x;
	n++;
}

//4.从任意位置插入

void insert(int p, int x)
{
	for (int i = n; i >= p; i--)
	{
		arr[i + 1] = arr[i];
	}
	arr[p] = x;
	n++;
}

//5.尾删

void pop_back()
{
	n--;
}

//6.头删

void pop_front()
{
	for (int i = 2; i <= n; i++)
	{
		arr[i - 1] = arr[i];
	}
	n--;
}

//7.任意位置删除

void erase(int p)
{
	for (int i = p + 1; i <= n; i++)
	{
		arr[i - 1] = arr[i];
	}
	n--;
}

//8.按值查找

int find(int x)
{
	for (int i = 0; i <= n; i++)
	{
		if (arr[i] == x)
			return i;
	}
	return 0;
}

//9.按位查找

int at(int p)
{
	return arr[p];
}

//10.修改元素

void change(int p, int x)
{
	arr[p] = x;
}

//11.清空

void clean()
{
	n = 0;
}

//test

void printf()
{
	for (int i = 1; i <= n; i++)
	{
		cout << arr[i]<<" ";
	}
	cout << endl;
}
int main()
{
	push_back(1);
	printf();
	push_back(3);
	printf();
	push_back(5);
	printf();
	/*clean();*/
	/*pop_front();
	printf();*/
	insert(2, 6);
	printf();
}
;