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. 告别复杂排版:Markdown语法指南

    导语:Markdown作为一种轻量级的标记语言,以其简洁.易学的语法和强大的兼容性赢得了广泛的应用.本文将为您详细介绍Markdown的起源.基本语法及其在写作.博客.项目管理等场景的应用,带您领略这 ...

  2. FlinkSQL实战开发

    FlinkSQL实战开发 1.基础知识 FlinkSQL分为Table API和SQL API,是架构于Flink Core之上用SQL予以方便快捷地进行结构化数据处理的上层库. 工作流程 SQL和T ...

  3. 记录:idea git push失败问题

    问题描述: 重复弹出密码登录框,但是push失败 解决,用ssh的方式登录 1.生成ssh 配置用户名 git config --global user.name "tmqq2333&quo ...

  4. 华为云GaussDB打造最可信的数据库,给世界一个更优选择

    近日,第14届中国数据库技术大会(DTCC2023)在北京国际会议中心顺利举行.大会以"数智赋能 共筑未来"为主题,邀请了上百位行业专家,一起探讨新时代下各类型数据库的最新动态和应 ...

  5. 华为云 UCS GitOps:轻松交付多集群云原生应用

    摘要:使用华为云 UCS GitOps 配置管理来交付您的多云应用. 本文分享自华为云社区<华为云 UCS GitOps:轻松交付多集群云原生应用>,作者:华为云云原生团队. 随着业务的全 ...

  6. 震惊!火爆全网的ChatGPT背后使用的数据库居然是……

    摘要:ChatGPT承认了自己背后使用的数据库是Cassandra. OpenAI最近发布的AI驱动的智能聊天机器人ChatGPT在互联网上掀起了一阵风暴,热衷于尝试这一新AI成果的网民不在少数.Ch ...

  7. 这项评测,华为云GaussDB(for MySQL)顺利通过

    摘要:近日,中国信息通信研究院(简称"中国信通院")公布了第十五批"可信数据库"评测结果.华为云GaussDB(for MySQL)凭借过硬的技术实力顺利通过& ...

  8. 华为云发布ModelBox AI应用开发框架

    摘要:华为云ModelBox AI应用开发框架,打通端边云边界,助力开发者实现AI应用一次开发,全场景部署. 近日,以"因聚而生,为你所能"为主题的华为伙伴暨开发者大会 2022隆 ...

  9. 1ms的时延,10Gbps速率…5G通信技术解读

    摘要:5G通信的关键技术有哪些呢?5G对于移动互联网场景和物联网场景又带来了哪些新的技术和变革? 本文分享自华为云社区<5G通信关键技术解读>,作者:Super.雯 . 5G作为目前最新一 ...

  10. 一文带你从零认识什么是XLA

    摘要:简要介绍XLA的工作原理以及它在 Pytorch下的使用. 本文分享自华为云社区<XLA优化原理简介>,作者: 拓荒者01. 初识XLA XLA的全称是Accelerated Lin ...