AcWing 3709:单链表节点交换 ← 四川大学考研机试题

【题目来源】
https://www.acwing.com/problem/content/3712/

【题目描述】
输入一个单链表,依次交换前2个数,第3、4个数,第5、6个数,...,以此类推,直到操作完整个链表。
如果链表长度是奇数,则最后一个数不用操作。
输出交换之后的链表。

【输入格式】
第一行包含整数 n,表示节点数量。
第二行包含 n 个整数,表示每个节点的值。

【输出格式】
共一行,输出交换后的链表。

【数据范围】
1≤n≤100,
节点取值范围 [1,100]。

【输入样例】
5
1 2 3 4 5

【输出样例】
2 1 4 3 5

【算法分析】
本题是四川大学考研机试题。
在编码时,不要一看到单链表,就去用链式结构实现,这样就势必增加了编码复杂度。可以考虑用数组模拟实现,可大大简化编码难度。

【算法代码】

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int maxn=105;
int a[maxn];

int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) cin>>a[i];

    int t=n;
    if(n%2!=0) t--;
    for(int i=1; i<t; i+=2) swap(a[i],a[i+1]);
    
    for(int i=1; i<=n; i++) cout<<a[i]<<" ";
}

/*
in:
5
1 2 3 4 5

out:
2 1 4 3 5
*/
相关推荐
DARLING Zero two♡3 天前
【初阶数据结构】探索数据的多米诺链:单链表
c语言·数据结构·c++·链表·单链表
A懿轩A12 天前
C/C++ 数据结构与算法【查找】 线性表查找、树表的查找、散列表的查找详细解析【日常学习,考研必备】带图+详细代码
c语言·c++·算法·散列表·线性表·查找
終不似少年遊*18 天前
数据结构之线性表
数据结构·笔记·python·算法·线性表
Rossy Yan1 个月前
【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
数据结构·c++·算法·线性表
A懿轩A2 个月前
C/C++ 数据结构与算法【线性表】 顺序表+链表详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·考研·算法·链表·线性表
芜湖_2 个月前
【山大909算法题】2014-T1
算法·c·单链表
TPCloud2 个月前
快速利用c语言实现线性表(lineList)
c语言·开发语言·线性表·linelist
大河qu5 个月前
语言基础/单向链表的构建和使用(含Linux中SLIST的解析和使用)
数据结构·单链表·线性表·slist·linux slist·头指针和头节点
wyuchen1235 个月前
单链表的实现
数据结构·c++·链表·单链表
算法小白(真小白)6 个月前
数据结构——考研笔记(三)线性表之单链表
数据结构·考研·链表·线性表