4,有n个整数,使前面各数顺序向后m个位置,最后m个数变成最前面m个数,见图 8.43。写一函数实现以上功能在主函数中输入个整数和输出调整后的n个数。

我的代码:

1.使用双向链表

void MoveDLink(DoubleList head, int m, int n) {
/* 寻找原链表第n-m个节点 */
DoubleList current = head, temp;
for (int i = 0; i < n - m; i++) {
current = current->next;
}
/* temp保存后m个数的首个数 */
temp = current->next;
/* 处理新链表尾部部分 */
current->next = NULL; /* 找到原链表最后一个节点 */
DoubleList tail = temp;
while (tail->next) {
tail = tail->next;
} /* 处理新链表中间衔接部分 */
tail->next = head->next;
head->next->prior = tail;
/* 处理新链表头部部分 */
head->next = temp;
temp->prior = head; }

2.使用顺序表

void shiftArray(int arr[], int n, int m)
{
    int *temp = (int *)malloc(m * sizeof(int)); // 使用动态内存分配创建临时数组     if (temp == NULL)
    {
        printf("内存分配失败\n");
        exit(1);
    }     // 将最后m个元素保存到临时数组temp中
    for (int i = 0; i < m; i++)
    {
        temp[i] = arr[n - m + i];
    }     // 向后移动前n-m个元素
    for (int i = n - 1; i >= m; i--)
    {
        arr[i] = arr[i - m];
    }     // 将临时数组中的元素放回到数组的前面
    for (int i = 0; i < m; i++)
    {
        arr[i] = temp[i];
    }     free(temp); // 释放临时数组的内存
}

有n个整数,使前面各数顺序向后m个位置,最后m个数变成最前面m个数,见图 8.43。写一函数实现以上功能在主函数中输入个整数和输出调整后的n个数。的更多相关文章

  1. 输入n个数和输出调整后的n个数

    输入n个数和输出调整后的n个数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 148  Solved: 118 [Submit][Status][We ...

  2. 1066: 输入n个数和输出调整后的n个数

    1066: 输入n个数和输出调整后的n个数 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 2739  Solved: 1578[Submit][Stat ...

  3. C++经典题目:有n个整数,使前面各数顺序向后移动m个位置

    问题描述: 有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数. 程序代码: #include<iostream> #define MAXLEN 200 using na ...

  4. 38 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

    题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. public class _038PrintLength { public static void main(Stri ...

  5. 36 有n个整数,使其前面各数顺序向后移n个位置,最后m个数变成最前面的m个数

    题目:有n个整数,使其前面各数顺序向后移n个位置,最后m个数变成最前面的m个数 public class _036ExchangeSite { public static void main(Stri ...

  6. 有n个整数,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数

    题目:有n个整数,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数 public class 第三十六题数组向后移m个位置 { public static void main(Stri ...

  7. 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

    import java.util.Scanner; /** * [程序38] * * 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. * * @author Jame ...

  8. 代码实现:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

    //有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 import java.util.ArrayList; import java.util.Scanner; public ...

  9. 剑指offer-调整数组内奇偶数顺序

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 解题思路 时间换 ...

  10. python输入一个字符串,输出翻转后的字符串(翻转字符串)

    题目:输出一个字符串,输出翻转后的字符串.例如:输入字符串a123,输出321a. 方法一:使用列表的reverse方法 string=input('请输入一个字符串:') lst=list(stri ...

随机推荐

  1. java方法的定义与执行

    java中的方法在类中定义. 定义方法格式: 访问修饰符    返回值类型    方法名(参数列表){   ...  执行内容  ...   return 返回值; } 访问修饰符:表示方法在哪里能被 ...

  2. 开源云原生网关Linux Traefik本地部署结合内网穿透远程访问

      开源云原生网关Linux Traefik本地部署结合内网穿透远程访问 前言 Træfɪk 是一个云原生的新型的 HTTP 反向代理.负载均衡软件,能轻易的部署微服务.它支持多种后端 (Docker ...

  3. K8S系列一:概念入门

    K8S系列一:概念入门 写在前面 本文组织方式: K8S的架构.作用和目的.需要首先对K8S整体有所了解. K8S是什么? 为什么是K8S? K8S怎么做? K8S的重要概念,即K8S的API对象.要 ...

  4. Flutter Getx 状态管理 --- 响应式状态管理器

    状态管理 Get 并不是比任何其他状态管理器更好或更差,而是说你应该分析这些要点以及下面的要点来选择只用 Get,还是与其他状态管理器结合使用. Get不是其他状态管理器的敌人,因为Get是一个微框架 ...

  5. Swagger系列:Spring Boot 2.x集成Spring Doc(Swagger 3.0)

    目录 一.简介 1.SpringFox工具(不推荐) 2.SpringDoc工具(推荐) 二.集成 1.环境 1. 引入Maven依赖 2.配置SpringDocConfig(配置类方式) 3.配置S ...

  6. Java 插入Excel页眉、页脚

    前言 在Excel文档中,我们常用页眉页脚来显示文档的附加信息,例如日期.公司名称.Logo或作者信息等.本文将通过Java程序来介绍如何给Excel文档添加页眉页脚.代码示例主要从以下几方面来演示添 ...

  7. 实例讲解FusionInsight MRS RTD 实时决策引擎在医保行业应用

    摘要: 通过引入FusionInsight RTD实时决策系统,实现医保费用事前预防.事中控制.事后审核的全流程管理 本文分享自华为云社区<FusionInsight MRS RTD 实时决策引 ...

  8. Gzip之后继者Brotli浅析之CDN厂商的智能压缩,服务器Brotli设置

    "智能压缩"按照又拍云的说法是,同时支持 Gzip 和 Brotli 压缩算法.根据用于浏览器开启自动选择不同压缩方式. Gzip 压缩算法 Gzip 基于 DEFLATE 算法, ...

  9. 火山引擎 DataLeap:如何构建一套完整、易用的数据标准体系

    数据标准是数据治理体系中的核心要素之一.   一方面,统一的数据标准可以在复杂的业务场景下,帮助团队对齐数据口径,提升数据在分析.诊断等场景的质量与效率:另一方面,数仓团队与分析师团队也需要沉淀一套敏 ...

  10. Solon2 接口开发: 实战 Gateway 模式效果

    1.效果预览 网关 @Mapping("/api/v3/app/**") @Component public class ApiGateway3x extends UapiGate ...