Mrain哥带你学数据结构-顺序表的经典例题

本文总结了本周关于数据结构的学习重点,聚焦于顺序表的操作,包括元素逆置、删除特定值、删除指定范围元素、删除重复元素及有序顺序表合并。详细讨论了每个操作的时间和空间复杂度,旨在深化对数据结构的理解。
摘要由CSDN通过智能技术生成


写在前面

  • 注:这篇博文主要是用来总结这周学习的内容,因个人水平对问题的理解可能有不对的地方,欢迎大家一起来交流学习!
  • 个人微信公众号: 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值