Mrain哥带你学数据结构-顺序表的经典例题
写在前面
- 注:这篇博文主要是用来总结这周学习的内容,因个人水平对问题的理解可能有不对的地方,欢迎大家一起来交流学习!
- 个人微信公众号: miaoyuwangyan
- 个人博客首页
- 个人独立博客也正在搭建中,不日开放。
正文
1. 元素逆置(重要)
要求:将顺序表的元素逆置,保证空间复杂度为O(1)。
void reverse(Arr& A)
{
int temp;
for (i = 0; i < A.length / 2; i++)
{
//第一个与最后一个交换0<->A.length-1
//1<->A.length-2
//i<->A.length-1-i
temp = A.data[i];
A.data[i] = A.data[A.length - i - 1];
A.data[A.length - i - 1] = temp;
}
}
Note: 空间复杂度为O(1), 时间复杂度为O(n).
2. 删除顺序表中确定值的元素
要求:已知元素值为val, 删除顺序表中所有值为val的数。
void delet_elem(Arr& A, int val)
{
int i = 0;
int j = 0;
while (i < A