ytu 2231: 交集问题(线性表)(数据结构,链表练习)
2231: 交集问题(线性表)
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 6 Solved: 3
[Submit][Status][Web Board]
Description
设有两个单链表A,B,求出A,B的交集元素放到A中
Input
1 4 5 6 7 8
1 3 6 9 10 33
Output
1 6
Sample Input
Sample Output
HINT
Source
数据结构,链表练习。
对两个链表取交集输出。考验链表的实现和处理。作为练习题很适合。也纠结了不少时间。
代码:
#include <iostream>
#include <stdio.h>
using namespace std;
struct Node{
int num;
Node* next;
};
int main()
{
int n=;
char c;
Node* head = new Node;
Node* p = new Node;
head->next = p;
//输入A链表
while((c=getchar())!='\n'){
if(''<=c && c<=''){ //c是数字
int t = c-'';
n = n*+t;
}
else if(c==' ' && n!=){ //c是空格
p->num = n;
n = ;
Node* cur = new Node;
p->next = cur;
p=cur;
}
}
p->num = n;
p->next = NULL; getchar(); //两个链表中间有一个回车 Node* head2 = new Node;
Node* p2 = new Node;
p = p2;
head2->next = p;
n = ;
//输入A链表
while((c=getchar())!='\n'){
if(''<=c && c<=''){ //c是数字
int t = c-'';
n = n*+t;
}
else if(c==' ' && n!=){ //c是空格
p->num = n;
n = ;
Node* cur = new Node;
p->next = cur;
p=cur;
}
}
p->num = n;
p->next = NULL; //取交集,对A链表处理
p = head;
while(p->next!=NULL){
p2=head2->next;
while(p2!=NULL){
if(p->next->num==p2->num){
break;
}
p2 = p2->next;
}
if(p2==NULL){ //没有找到
Node* q = new Node;
q = p->next; //存储一会要销毁的空间地址
p->next=p->next->next;
delete(q); //销毁删掉的节点
}
else //找到了
p=p->next;
} //输出
p=head->next;
while(p!=NULL){
cout<<p->num<<' ';
p=p->next;
}
cout<<endl;
/*
p=head2->next;
while(p!=NULL){
cout<<p->num<<endl;
p=p->next;
}
*/
return ;
}
Freecode : www.cnblogs.com/yym2013
ytu 2231: 交集问题(线性表)(数据结构,链表练习)的更多相关文章
- C语言 严蔚敏数据结构 线性表之链表实现
博主最近在考成都大学皇家计算机科学与技术专业,复习专业课数据结构,正好学习到线性结构中的线性表用链表这种存储结构来实现. 首先,数据结构包括1.数据的操作2.逻辑结构3.存储结构(数据结构三要素. 直 ...
- C数据结构 : 线性表 与 链表
一.线性表 一般表现为数组,使用一组地址连续的存储单元依次存储数据元素,如图: 它具有如下特点: 长度固定,必须在分配内存之前确定数组的长度. 存储空间连续,即允许元素的随机访问. 存储密度大,内存中 ...
- Python线性表——单链表
1. 线性表简介 线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列.线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一个直接前驱,有且只有一个直接后继,而序列头元素没有直接前驱 ...
- JAVA实现具有迭代器的线性表(单链表)
一,迭代器的基本知识: 1,为什么要用迭代器?(迭代:即对每一个元素进行一次“问候”) 比如说,我们定义了一个ADT(抽象数据类型),作为ADT的一种实现,如单链表.而单链表的基本操作中,大部分需要用 ...
- YTU 2203: 最小节点(线性表)
2203: 最小节点(线性表) 时间限制: 1 Sec 内存限制: 128 MB 提交: 243 解决: 204 题目描述 (线性表)设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算 ...
- 数据结构之 线性表---单链表的操作B(先逆序+再删除重复元素)
数据结构上机测试2-2:单链表操作B Time Limit: 1000MS Memory limit: 65536K 题目描述 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删 ...
- 数据结构之 线性表---单链表操作A (删除链表中的指定元素)
数据结构上机测试2-1:单链表操作A Time Limit: 1000MS Memory limit: 4096K 题目描述 输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据 ...
- JAVA中的array是通过线性表还是链表实现的呢?
由于高级程序设计语言中的数组类型也有随机存取的特性,因此,通常都用数组来描述数据结构中的顺序存储结构.
- 线性表 及Java实现 顺序表、链表、栈、队列
数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...
随机推荐
- vue - (v-pre、v-cloak、v-once)
1.v-pre,不和绑定的数据冲突,也就是不用它们的值 2.v-cloak,和css样式一起用,vue渲染未完成不显示 3.v-once,只渲染DOM第一次渲染的值,以后不会改变了(你不要刷新网页,然 ...
- swagger 生成的接口文档,隐藏接口的某个参数
[问题描述] controller 中的处理请求的方法,有时候会添加一些额外的参数.比如下面代码中 UserVo: @PostMapping(value = "/add-office-par ...
- Python 代码块左移或右移
(就 IDE 是 PyCharm 来说) 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab Python 对代码对齐要求很严格的. Python的对齐方式很重要,对齐方式决定了 ...
- html调用摄像头的方法汇总
1.在PC端打开摄像头的方法:(移动端不能使用) 能够实现打开摄像头并截图 <!doctype html> <html lang="en"> <hea ...
- emqtt-benchmark发送指令
- MapReduce实现两表的Join--原理及python和java代码实现
用Hive一句话搞定的,可是有时必需要用mapreduce 方法介绍 1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是很常见且很耗时的.而在HADOOP中进行JOIN操作.相同常见且耗时, ...
- Hibernate关联关系(二) Cascade级联
1.cascade定义的是关系两端对象到对象的级联关系:而inverse定义的是关系和对象的级联关系. all : 所有情况下均进行关联操作. none:所有情况下均不进行关联操作.这是默认值. ...
- WebSocket遇到的一些问题
一 .Nginx配置websocket 为了解决Nginx转发不能进行websocket通信问题 将nginx配置文件添加如下内容: map $http_upgrade $connection ...
- TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签
首先来看下实现的效果吧: 最近在项目中实现这个效果的时候.尽管自己磕磕绊绊的实现了,可是知识确实模模糊糊的,今天天气异常的冷,在加上这个知识不太熟练,实在是没有心情进行接下来的计划,干脆借着这个时间, ...
- KVC之-setValue:forKey:方法实现原理与验证
KVC之-setValue:forKey:方法实现原理与验证 - (void)setValue:(id)value forKey:(NSString *)key方法,实现原理与验证 功能:使用一个字符 ...