【王道数据结构】【chapter2线性表】【P44t16】

设有一个长度为n(n为偶数)的不带头结点的单链表且结点值都大于0,设计算法求这个单链表的最大的孪生和。孪生和的定义为一个结点值与其孪生结点值的和,对于第i个结点(从0开始),其孪生结点为第n-i-1个结点。

#include <iostream>
#include<time.h>
#include <stdlib.h>
typedef  struct node{
    int data;
    node* next;
}node,*list;

list Buynewnode(int x)
{
    list tmp=new node;
    tmp->next= nullptr;
    tmp->data=x;
    return tmp;
}


int twist(list head)
{
    list h1=head,h2=head;
    while(h2)
    {
        h1=h1->next;
        h2=h2->next;
        if(h2) h2=h2->next;
        else break;
    }
    //h1是第二条链表的开头的结点
    //如果节点的个数是偶数个,那么将会正好是后一半的开始的结点
    //如果节点的个数是奇数个的话,将会是正中间的那个结点
    //本题已经说明是偶数个结点。
    list p2=h1->next;
    h1->next= nullptr;
    while(p2)
    {
        list tmp=p2->next;
        p2->next=h1;
        h1=p2;p2=tmp;
    }
    int record=-1;
    list p3=head,p4=h1;
    while(p4)
    {
        record=record>(p3->data+p4->data)?record:(p3->data+p4->data);
        p3=p3->next,p4=p4->next;
    }
    return record;

}
int main() {
    srand(time(nullptr));
    list head= nullptr;
    list pointer=head;
    for(int i=0;i<10;i++)
    {
        if(head== nullptr) head=pointer= Buynewnode(i+rand()%20);
        else pointer=pointer->next= Buynewnode(i+1+rand()%20);
    }
    for(pointer=head;pointer!= nullptr;pointer=pointer->next) {
        printf("%3d",pointer->data);
    }
    puts("");


    printf("%d\n", twist(head));
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354199.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【RT-DETR有效改进】EfficientFormerV2移动设备优化的视觉网络(附对比试验效果图)

前言 大家好&#xff0c;我是Snu77&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持Re…

【JaveWeb教程】(35)SpringBootWeb案例之《智能学习辅助系统》登录功能的详细实现步骤与代码示例(8)

目录 案例-登录和认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 案例-登录和认证 在前面的课程中&#xff0c;我们已经实现了部门管理、员工管理的基本功能&#xff0c;但是大家会发现&#xff0c;我们并没有登录&#xff0c;就直接访问到了Tlias智能…

DS:带头双向循环链表的实现(超详细!!)

创作不易&#xff0c;友友们给个三连吧&#xff01;&#xff01;&#xff01; 博主的上篇文章介绍了链表&#xff0c;以及单链表的实现。 单链表的实现&#xff08;超详细&#xff01;&#xff01;&#xff09; 其实单链表的全称叫做不带头单向不循环链表&#xff0c;本文…

STP生成树协议实验

实验大纲 一、什么是生成树协议 二、生成树原理 1.STP工作原理 2.STP主要参数 3.STP根网桥 4.STP协议版本 三、实验 1.构建网络拓扑结构图 2.配置IP地址&#xff08;8台PC机&#xff09;&#xff1a;192.168.7.1~192.168.7.8 3.配置SW1 4.配置SW2 5.配置SW3 6.配置…

浪潮信息打造高效算力架构 为金融业数字化坚实基座

新时期&#xff0c;数据智能已经逐渐成为金融商业中的重要力量&#xff0c;构建更强大的算力系统&#xff0c;推动金融业务的高效发展&#xff0c;已经成为了金融行业的目标。对此&#xff0c;浪潮信息也为金融客户提供了崭新的解决方案。此前&#xff0c;某银行基于浪潮信息量…

第二模块 函数模块

第二模块 函数&模块 day09 文件操作相关1. 文件操作1.1 读文件1.2 写文件1.3 文件打开模式1.4 常见功能1.5 上下文管理练习题 2.csv格式文件3.ini格式文件4.XML格式文件4.1 读取文件和内容4.2 读取节点数据4.3 修改和删除节点4.4 构建文档 5.Excel格式文件5.1 读Excel5.1 写…

ESP32 SPIFFS文件系统

简介 本章涉及知识点&#xff1a;ESP32 SPIFFS文件系统、日志输出。 ESP-IDF版本&#xff1a;V5.1.2 源码 小智学长的源码&#xff1a;DesktopScreen 7 文件系统 系统配置 如果是自己构建的项目&#xff0c;如图。要在CMakeLists中配置上spiffs。 如果是直接跑官方例程则忽略系…

wireshark利用sshdump自身组件进行远程实时抓包过滤

引言 以前在不了解wireshark可以远程抓包的时间&#xff0c;经常通过tcpdump在远程linux主机将抓包文件保存下来后&#xff0c;然后拖拽入windows中再打开&#xff0c;进行分析查看。 此过程比较繁琐&#xff0c;也不够实时。比较常用的抓包动作是仅出现某特征的报文后&#…

手动导入jar包到Maven的解决方案(简单有效!)

想要导入一个jar包到项目中&#xff0c;这个jar包在Maven中没有可以尝试以下方式。 第一步 先找到你maven的本地仓库&#xff0c;我的仓库就在这里&#xff0c;你可以根据你安装的maven找到你的目录 第二步 根据坐标创建文件夹。 这个依赖modbus4j.jar&#xff0c;Maven远…

Cesium.js实现显示点位对应的自定义信息弹窗(数据面板)

博客&#xff1a;关于Cesium的常见需求整理之点位和弹窗&#xff08;点位弹窗&#xff09; 博客&#xff1a;cesium添加点、线、面、文字、图标、模型等标绘 零、相关技术选型&#xff1a; Vue2 Vuecli5 Cesium.js 天地图 一、需求说明 在使用2D地图&#xff08;天地图、高德…

微信小程序(二十一)css变量-定义页面主题色

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.使用css变量 2.消除按钮白块影响 3.修改图标样式 源码&#xff1a; npmTest.json {"navigationStyle": "custom","usingComponents": {//引入vant组件"van-nav-bar"…

低代码助力软件开发

随着企业对于低代码开发平台的需求日益增长&#xff0c;急需一个通用的解决方案来满足各种低代码平台的开发需求。正是在这种情况下&#xff0c;低代码引擎应运而生。 作为一种通用的开发框架&#xff0c;通过对低代码平台系统常用的功能进行解构&#xff0c;将其划分为多个功能…

2. HarmonyOS 应用开发 DevEco Studio 准备-2

2. HarmonyOS 应用开发 DevEco Studio 准备-2 首选项设置 中文设置 主题 字体 插件安装和使用 保存时操作 编辑器 工程树管理 代码树管理 标记 字符串可视化编辑 参考文档 常用快捷键 编辑 查找或替换 编译与运行 调试 其他 预览 页面预览 自定义组件预览 预览…

行测-资料:3. 比重、平均数

1、比重 1.1 现期比重★★★ C A&#xff0c;16.63%≈1/6 B C&#xff0c;拆成 50% 和 6.6% ≈ 1/15。 C D 1.2 基期比重★ 数学推导&#xff0c;A&#xff0c;B&#xff0c;A/(1 a)&#xff0c;B / (1 b) A&#xff0c;4 / 9&#xff0c;12 / 27 x 1.14 / 1.18&#xff0c;看…

基于Python flask MySQL 猫眼电影可视化系统设计与实现

1 绪论 1.1 设计背景及目的 猫眼电影作为国内知名的电影信息网站&#xff0c;拥有海量的电影信息、票房数据和用户评价数据。这些数据对于电影市场的研究和分析具有重要意义。然而&#xff0c;由于数据的复杂性和数据来源的多样性&#xff0c;如何有效地采集、存储和展示这些数…

c语言基础6

1.逗号表达式 逗号表达式&#xff0c;就是用逗号隔开的多个表达式。 逗号表达式&#xff0c;从左向右依次执行。整个表达式的结果是最后⼀个表达式的结果。 我们来看下面的一个代码&#xff1a; int main() {int a 1;int b 2;int ret (a > b, a b 2, b, b a 1);p…

程序员成被裁最多的职业,互联网成围城,“转码”神话破灭?

随着互联网蓬勃发展&#xff0c;“转码”一直被视为找不到工作时的灵丹妙药。所谓转码&#xff0c;就是转行成为程序员。专业太偏&#xff1f;没关系&#xff0c;可以转码。失业了&#xff1f;没关系&#xff0c;可以转码。不知道该做什么工作&#xff1f;那就转码吧。程序员薪…

资产盘点系统架构与实践

资产盘点系统架构与实战 随着企业规模的不断扩大&#xff0c;资产管理变得越来越重要。为了更好地管理企业资产&#xff0c;许多公司都开始使用资产盘点系统。本文将介绍资产盘点系统的架构和实战。 一、概述 资产盘点系统是一种用于管理企业资产的软件系统。它可以帮助企业…

抽象工厂模式-C#实现

该实例基于WPF实现&#xff0c;直接上代码&#xff0c;下面为三层架构的代码。 一 Model using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 设计模式练习.Model.抽象工厂模式 {public abstrac…

MPNN(Message Passing Neural Network)、graph pooling 、unpooling

The state encoder is mainly composed of MPNN layers organized into DenseNet blocks, which use graph pooling and unpooling layers (see Section S1.5†) to reduce the memory cost during training.