从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();
}