共享后缀的链表

有一种存储英文单词的方法,是把单词的所有字母串在一个单链表上。为了节省一点空间,如果有两个单词有同样的后缀,就让它们共享这个后缀。下图给出了单词“loading”和“being”的存储形式。本题要求你找出两个链表的公共后缀。

在这里插入图片描述

函数接口定义:

PtrToNode Suffix( List L1, List L2 );

其中List结构定义如下:

typedef struct Node *PtrToNode;
struct Node {ElementType Data; /* 存储结点数据 */PtrToNode   Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */

L1和L2都是给定的带头结点的单链表。函数Suffix应返回L1和L2的公共后缀的起点位置。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>typedef char ElementType;typedef struct Node *PtrToNode;
struct Node {ElementType Data; /* 存储结点数据 */PtrToNode   Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */void ReadInput( List L1, List L2 ); /* 裁判实现,细节不表 */
void PrintSublist( PtrToNode StartP ); /* 裁判实现,细节不表 */
PtrToNode Suffix( List L1, List L2 );int main()
{List L1, L2;PtrToNode P;L1 = (List)malloc(sizeof(struct Node));L2 = (List)malloc(sizeof(struct Node));L1->Next = L2->Next = NULL;ReadInput( L1, L2 );P = Suffix( L1, L2 );PrintSublist( P );return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

如图存储的链表
在这里插入图片描述
输出样例:

ing

代码:

PtrToNode Suffix( List L1, List L2 )
{List P1,P2;P1=L1->Next;P2=L2->Next;int len1=0,len2=0;//求链表1的长度 while(P1){len1++;P1=P1->Next;}//求链表2的长度 while(P2){len2++;P2=P2->Next;}//若len1>len2,令P1指向链表中的第len1-len2+1个结点 for(P1=L1;len1>len2;len1--) P1=P1->Next;//若len2>len1,令P2指向链表中的第len2-len1+1个结点 for(P2=L2;len2>len1;len2--) P2=P2->Next;while(P1->Next!=P2->Next){// 将指针P1和p2同步向后移动,直到P1和p2指向同一结点P1=P1->Next;P2=P2->Next; }	return P1->Next;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#反射与特性(一):反射基础

1. 说明1.1 关于反射、特性在 《C# 7.0 本质论》中&#xff0c;关于这方面的知识在 《第十八章 反射、特性和动态编程》&#xff1b;在《C# 7.0 核心技术指南》中&#xff0c;这部分内容在《第19章 反射和元数据》。[图片来自 《C# 7.0 本质论》]在这里我们可以获得一些关联性很…

收藏!推荐12个超实用的Visual Studio插件

工欲善其事&#xff0c;必先利其器,整理的一些我必装的12款Visual Studio插件&#xff0c;希望你们能get到。效率工具前文传送门&#xff1a;推荐&#xff1a;程序员必装的10款谷歌插件程序员必备的8个学习工具99%的人不知道搜索引擎的6个技巧01 CodeMaidCodeMaid快速整理代码文…

搭建独立博客,这款评论插件不能错过

微信公众号因为申请的时间晚&#xff0c;一直到现在都无法开通评论功能&#xff0c;之前博客一直使用的多说作为评论系统&#xff0c;自从多说关闭后&#xff0c;好多年都处于无评论状态&#xff0c;最近发现 gitalk 还不错&#xff0c;所以在博客中进行了对 gitalk 的集成&…

最大堆和最小堆(数据结构)

堆和栈的区别&#xff1a; 一、空间分配区别&#xff1a; 栈&#xff08;操作系统&#xff09;&#xff1a;由操作系统自动分配释放&#xff0c;存放函数的参考值&#xff0c;局部变量的值等。其操作方式类似于数据结构中的栈堆&#xff08;操作系统&#xff09;&#xff1a;一…

2019公众号总结之——Top100 技术文章汇总

大家好&#xff0c;我是张善友。新年伊始&#xff0c;我们在欢送10年代的同时迎来了20年代。在这个崭新的时代&#xff0c;感谢各位朋友一直关注“dotnet跨平台”。一晃5年有余&#xff0c;关注公众号的粉丝6万&#xff0c;相对于.NET开发人员&#xff0c;希望2020年有更多小伙…

树,森林,二叉树的互相转换

树、森林到二叉树的转换 将树转换为二叉树 树中每个结点最多只有一个最左边的孩子&#xff08;长子&#xff09;和一个右邻的兄弟。按照这种关系很自然地就将树转换成相应的二叉树&#xff1a; 在所有兄弟结点之间加一连线对每个结点&#xff0c;除了保留与其长子的连线外&am…

数据丢失引起宕机怎么办?

做过系统开发和运维的朋友&#xff0c;应该最怕数据丢失问题出现&#xff0c;更严重的是造成无法恢复的糟糕境地&#xff0c;简直叫人崩溃啊&#xff0c;这周有一个朋友跟我咨询这方面的事情&#xff0c;就整理了一下数据库自动异地备份的方法&#xff0c;分享给大家。大家都知…

ASP.NET Core跨平台技术内幕

ASP.NET Core设计初衷是开源跨平台、高性能Web服务器&#xff0c;其中跨平台特性较早期ASP.NET是一个显著的飞跃&#xff0c;.NET现可以理直气壮与JAVA同台竞技&#xff0c;而ASP.NET Core的高性能特性更是成为致胜法宝。ASP.NET Core 2.1为IIS托管新增In-Process模型并作为默认…

使用 Visual Studio Code 进行远程开发

在完成了 AT 指令入门的学习之后&#xff0c;接下来就要使用 AT 指令进行 Socket 通信了。问题在于&#xff0c;之前 .NET 的 Socket 编程只需一台电脑便可进行学习&#xff0c;服务器和客户端都可以在本机运行&#xff0c;也可以分别运行在局域网上的两台电脑之上。而 NB-IOT …

.NETCore3.1中的Json互操作最全解读-收藏级

前言本文比较长&#xff0c;我建议大家先点赞、收藏后慢慢阅读&#xff0c;点赞再看&#xff0c;形成习惯&#xff01;我很高兴,.NETCore终于来到了3.1LTS版本&#xff0c;并且将支持3年&#xff0c;我们也准备让部分业务迁移到3.1上面&#xff0c;不过很快我们就遇到了新的问题…

逻辑结构的四种基本关系

逻辑结构的四种基本关系 1集合结构&#xff1a;数据元素之间除了“属于同一集合”的关系外&#xff0c;没有其他关系 2线性结构&#xff1a;数据元素之间存在一对一的关系 3树结构&#xff1a;数据元素之间存在一对多的关系 4图结构&#xff1a;数据元素之间存在多对多的关系

轻量级开源小程序SDK发车啦

Magicodes.WxMiniProgram.Sdk轻量级微信小程序SDK&#xff0c;支持.NET Framework以及.NET Core。目前已提供Abp模块的封装&#xff0c;支持开箱即用。地址&#xff1a;https://github.com/xin-lai/Magicodes.WxMiniProgram.SdkNuget新的包主要功能轻量级微信小程序SDK&#xf…

考察对顺序表的理解

顺序表是在计算机内存中以数组的形式保存的线性表 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中&#xff0c;即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻…

2020年你应该学习 .Net Core

一、什么是.NET Core.NET Core是一个开源通用的开发框架&#xff0c;支持跨平台&#xff0c;即支持在Window&#xff0c;macOS&#xff0c;Linux等系统上的开发和部署&#xff0c;并且可以在硬件设备&#xff0c;云服务&#xff0c;和嵌入式/物联网方案中进行使用。.NET Core的…

对表头指针、表头结点,单链表删除的理解

https://blog.csdn.net/weixin_46678290/article/details/105309156

C# WPF发票打印

C# WPF发票打印内容目录实现效果业务场景编码实现本文参考源码下载1.实现效果发票界面PDF打印结果2.业务场景界面作为发票预览&#xff0c;按客户需求可打印成发票纸张给客户。3.编码实现3.1 添加Nuget库站长使用 .Net Core 3.1 创建的WPF工程&#xff0c;创建“Invoice”解决方…

dotNET知音,19年归档

2019年下半年开通公众号&#xff0c;尝试着分享和技术交流&#xff0c;也很高兴认识很多NETer同行。为了方便阅读&#xff0c;进行归档&#xff0c;如果之前有错过的文章&#xff0c;这是一个很好的补课机会。.NETCore3.0&#xff1a;《.Net Core3.0 配置Configuration》《.Net…

阿里如何应对亿级高并发大流量?如何保障高可用和稳定性!

作者&#xff1a;丁浪&#xff0c;目前在创业公司担任高级技术架构师。曾就职于阿里巴巴大文娱和蚂蚁金服。具有丰富的稳定性保障&#xff0c;全链路性能优化的经验。架构师社区特邀嘉宾&#xff01;阅读本文&#xff0c;你将会收获&#xff1a; 高并发、大流量场景的常见问题和…

动手造轮子:写一个日志框架

动手造轮子&#xff1a;写一个日志框架Intro日志框架有很多&#xff0c;比如 log4net / nlog / serilog / microsoft.extensions.logging 等&#xff0c;如何在切换日志框架的时候做到不用修改代码&#xff0c;只需要切换不同的 loggingProvider 就可以了&#xff0c;最低成本的…

【C】@程序员,我们送给你一个成熟的Excel导入导出组件

程序员的显著特点有一天跟一位同事跟我闲聊&#xff0c;讨论起过去若干年软件行业的感受&#xff0c;他问了个问题&#xff1a;你觉得一个好的软件工程师最显著的特点是什么&#xff1f;我想了一会&#xff0c;说&#xff1a;大概是坐得住吧。某种意义上来说&#xff0c;在互联…