做企业网站需要提供什么资料,wordpress域名设置,做网站的软件 知乎,海南建站中心任务描述编程要求 输入输出测试说明来源 任务描述
本关任务#xff1a;假定采用带头结点的单链表保存单词#xff0c;当两个单词有相同的后缀时#xff0c;则可共享相同的后缀空间。 例如#xff0c;“loading”和“being”的存储映像如下图所示#xff1a; 设str1和str2…任务描述编程要求 输入输出测试说明来源 任务描述
本关任务假定采用带头结点的单链表保存单词当两个单词有相同的后缀时则可共享相同的后缀空间。 例如“loading”和“being”的存储映像如下图所示 设str1和str2分别指向两个单词所在单链表的头结点请实现一个时间上尽可能高效的算法找出由str1和str2所指的两个链表共同后缀的起始位置的结点输出该结点对应的字符如图中的字符i。
编程要求
输入
多组数据每组数据有三行第一行为链表str1和str2的长度n和m第二行为链表str1的n个元素第三行为链表str2的m个元素元素之间用空格分隔。n0且m0时输入结束。
输出
对于每组数据输出一行为共同后缀的起始位置结点对应的字符。
测试说明
平台会对你编写的代码进行测试
测试输入 7 5 l o a d i n g b e i n g 7 9 f l u e n c y f r e q u e n c y 0 0
预期输出 i u
来源
BJFUOJ 开始你的任务吧祝你成功 笔者第一次执行时漏写了count。结果是无论如何打印都为空甚至在函数开头写cout1; 都仍然是打印空。笔者并未解决这个不算问题的问题 #include iostream
using namespace std;
typedef struct LNode
{char data;struct LNode *next;
}LNode,*LinkList;
void CreateList_R(LinkList L,int n)
{//后插法创建单链表Lnew LNode;L-nextNULL;LinkList rL;for(int i0;in;i){LinkList pnew LNode;cinp-data;p-nextNULL;r-nextp;rp;}
}
void FindSuffix(LinkList str1, LinkList str2,int n,int m)
{//查找两个单词链表共同后缀的起始结点/**************begin************/LinkList p,q;if(nm) //p始终为更长那个的工作指针{pstr1-next;qstr2-next;}else {qstr1-next;pstr2-next;}
int diffn-m;
if(diff0) diffdiff*(-1);
int count0;
while(countdiff)
{pp-next;count;
}
while(pq)
{if(p-dataq-data){coutp-dataendl;break;}pp-next;qq-next;
}/**************end************/
}
int main()
{int n,m;while(cinnm){if(n0m0) break;LinkList str1,str2,p;CreateList_R(str1,n);CreateList_R(str2,m);FindSuffix(str1,str2,n,m);}return 0;
}