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
*/
相关推荐
TPCloud7 天前
快速利用c语言实现线性表(lineList)
c语言·开发语言·线性表·linelist
大河qu3 个月前
语言基础/单向链表的构建和使用(含Linux中SLIST的解析和使用)
数据结构·单链表·线性表·slist·linux slist·头指针和头节点
wyuchen1233 个月前
单链表的实现
数据结构·c++·链表·单链表
算法小白(真小白)4 个月前
数据结构——考研笔记(三)线性表之单链表
数据结构·考研·链表·线性表
Nelson_hehe5 个月前
考研系列-数据结构第二章、线性表
考研·链表·顺序表·数据结构与算法·线性表·王道考研笔记
Ljw...5 个月前
单链表的实现
数据结构·单链表
꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂6 个月前
数据结构 实验 1
c语言·数据结构·c++·线性表·实验
月暗darkmoon6 个月前
第三讲 栈、队列和数组 (1)
数据结构·考研·算法··线性表
C小只6 个月前
408数据结构总结复习笔记一:线性表
数据结构·笔记·学习·算法·链表·408·线性表
freephp7 个月前
人间算法题:到底是不是一个环?
golang·单链表·是否是环·腾讯面试题