0
点赞
收藏
分享

微信扫一扫

链表的简单练习

小月亮06 2022-01-10 阅读 53

链表题

一、链表遍历(JSU-ZJJ)

小T昨天很不爽
昨天路过体彩销售点买了2注生日号码玩,当晚开奖后……
小T号码: 8902088
中奖号码:3902888
一个号码不对就差了十几万……
小T想:为什么规则是那样玩的啊……为什么5个号码要连续才能中二等奖啊……
我自己创建个规则,开N个数字,只要数字位置对了不一定要连续就可以有奖。
现在有一个中奖号码,有一个兑奖号码,小T想知道一共有多少个数字位置正确的,N太大了……

二、输入格式

``输入数据第一行包含一个整数T表示有T组测试数据

对于每组测试数据

第一行包含一个整数N,表示有N个数字

第二行包含N个中奖号码

第三行包含N个兑奖号码

输出格式

样例输入

样例输出

#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
struct node{
	char data;
	struct node *next;
};
int main()
{
	struct node *p,*q,*head1,*head2,*t1,*t2;
	int i,j,temp,n;
	char a;
	cin>>temp;
	while(temp--)
	{
		head1=head2=NULL;
		cin>>n;
		for(i=0;i<n;i++)
		{
			p=(struct node *)malloc(sizeof(struct node));
			cin>>a;
			p->data=a;
			p->next=NULL;
			if(head1==NULL)
			{
				head1=p;
			}
			else
				q->next=p;
			q=p;
		}
		for(i=0;i<n;i++)
		{
			p=(struct node *)malloc(sizeof(struct node));
			cin>>a;
			p->data=a;
			p->next=NULL;
			if(head2==NULL)
			{
				head2=p;
			}
			else
				q->next=p;
			q=p;
		}
		int k=0;
		t1=head1,t2=head2;
		for(i=0;i<n;i++)
		{
			if(t1->data==t2->data)
				k++;
			t1=t1->next;
			t2=t2->next;
		}
		cout<<k<<endl;
	}
}

举报

相关推荐

0 条评论