将顺序表的所有元素逆置

本文介绍了如何不使用额外空间逆置顺序表,通过遍历前半部分元素并与其后半部分对应元素对调来实现。提供了C++实现的详细代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将顺序表的所有元素逆置(要求算法空间复杂度为O(1))

题目要求

关于逆置,有一种非常暴力的解决方法,就是单独开辟一个同等大小的线性表,然后新表从前往后遍历,同时原表从后往前遍历,依次赋值,最后得到的就是逆置后的线性表。
但这种方法的空间复杂度为O(n),所以并不能这么做。而且题目要求的是线性表编程过程中可直接定位的顺序表,所以没必要那么浪费空间,只需让顺序表中的数据元素头尾依次调换即可。

基本思想

从下标为0的元素开始,扫描顺序表L中的前半部分元素,将L.data[i]与L.data[L.length-i-1]对调。

核心代码

这里采用静态分配空间的顺序表

void Reverse(SqList &L)
{
   
	ElemType temp;//临时空间
	for (int i = 0; i < L.length/2; i++)
	{
   
		temp = L.data[i];
		L.data[i
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值