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
*/
相关推荐
代码AC不AC8 天前
【数据结构】单链表
c语言·数据结构·学习·单链表·深度解析
代码AC不AC17 天前
【数据结构】顺序表(附源码)
c语言·数据结构·源码·顺序表·线性表
ROCKY_81717 天前
数据结构(二)——顺序表
数据结构·顺序表·线性表
神里流~霜灭1 个月前
数据结构拓展:详解realloc(C++)
c语言·数据结构·c++·链表·顺序表·线性表
DARLING Zero two♡2 个月前
【初阶数据结构】探索数据的多米诺链:单链表
c语言·数据结构·c++·链表·单链表
A懿轩A3 个月前
C/C++ 数据结构与算法【查找】 线性表查找、树表的查找、散列表的查找详细解析【日常学习,考研必备】带图+详细代码
c语言·c++·算法·散列表·线性表·查找
終不似少年遊*3 个月前
数据结构之线性表
数据结构·笔记·python·算法·线性表
Rossy Yan4 个月前
【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
数据结构·c++·算法·线性表
A懿轩A4 个月前
C/C++ 数据结构与算法【线性表】 顺序表+链表详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·考研·算法·链表·线性表
芜湖_4 个月前
【山大909算法题】2014-T1
算法·c·单链表