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

11 14 54 6 4 83
 
11 3 6 9 10 83

Sample Output

11 6 83

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: 交集问题(线性表)(数据结构,链表练习)的更多相关文章

  1. C语言 严蔚敏数据结构 线性表之链表实现

    博主最近在考成都大学皇家计算机科学与技术专业,复习专业课数据结构,正好学习到线性结构中的线性表用链表这种存储结构来实现. 首先,数据结构包括1.数据的操作2.逻辑结构3.存储结构(数据结构三要素. 直 ...

  2. C数据结构 : 线性表 与 链表

    一.线性表 一般表现为数组,使用一组地址连续的存储单元依次存储数据元素,如图: 它具有如下特点: 长度固定,必须在分配内存之前确定数组的长度. 存储空间连续,即允许元素的随机访问. 存储密度大,内存中 ...

  3. Python线性表——单链表

    1. 线性表简介 线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列.线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一个直接前驱,有且只有一个直接后继,而序列头元素没有直接前驱 ...

  4. JAVA实现具有迭代器的线性表(单链表)

    一,迭代器的基本知识: 1,为什么要用迭代器?(迭代:即对每一个元素进行一次“问候”) 比如说,我们定义了一个ADT(抽象数据类型),作为ADT的一种实现,如单链表.而单链表的基本操作中,大部分需要用 ...

  5. YTU 2203: 最小节点(线性表)

    2203: 最小节点(线性表) 时间限制: 1 Sec  内存限制: 128 MB 提交: 243  解决: 204 题目描述 (线性表)设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算 ...

  6. 数据结构之 线性表---单链表的操作B(先逆序+再删除重复元素)

    数据结构上机测试2-2:单链表操作B Time Limit: 1000MS Memory limit: 65536K 题目描述 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删 ...

  7. 数据结构之 线性表---单链表操作A (删除链表中的指定元素)

    数据结构上机测试2-1:单链表操作A Time Limit: 1000MS Memory limit: 4096K 题目描述 输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据 ...

  8. JAVA中的array是通过线性表还是链表实现的呢?

    由于高级程序设计语言中的数组类型也有随机存取的特性,因此,通常都用数组来描述数据结构中的顺序存储结构.

  9. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

随机推荐

  1. vue - (v-pre、v-cloak、v-once)

    1.v-pre,不和绑定的数据冲突,也就是不用它们的值 2.v-cloak,和css样式一起用,vue渲染未完成不显示 3.v-once,只渲染DOM第一次渲染的值,以后不会改变了(你不要刷新网页,然 ...

  2. swagger 生成的接口文档,隐藏接口的某个参数

    [问题描述] controller 中的处理请求的方法,有时候会添加一些额外的参数.比如下面代码中 UserVo: @PostMapping(value = "/add-office-par ...

  3. Python 代码块左移或右移

    (就 IDE 是  PyCharm 来说) 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab Python 对代码对齐要求很严格的. Python的对齐方式很重要,对齐方式决定了 ...

  4. html调用摄像头的方法汇总

    1.在PC端打开摄像头的方法:(移动端不能使用) 能够实现打开摄像头并截图 <!doctype html> <html lang="en"> <hea ...

  5. emqtt-benchmark发送指令

  6. MapReduce实现两表的Join--原理及python和java代码实现

    用Hive一句话搞定的,可是有时必需要用mapreduce 方法介绍 1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是很常见且很耗时的.而在HADOOP中进行JOIN操作.相同常见且耗时, ...

  7. Hibernate关联关系(二) Cascade级联

    1.cascade定义的是关系两端对象到对象的级联关系:而inverse定义的是关系和对象的级联关系. all : 所有情况下均进行关联操作.  none:所有情况下均不进行关联操作.这是默认值.  ...

  8. WebSocket遇到的一些问题

    一 .Nginx配置websocket   为了解决Nginx转发不能进行websocket通信问题 将nginx配置文件添加如下内容:   map $http_upgrade $connection ...

  9. TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签

    首先来看下实现的效果吧: 最近在项目中实现这个效果的时候.尽管自己磕磕绊绊的实现了,可是知识确实模模糊糊的,今天天气异常的冷,在加上这个知识不太熟练,实在是没有心情进行接下来的计划,干脆借着这个时间, ...

  10. KVC之-setValue:forKey:方法实现原理与验证

    KVC之-setValue:forKey:方法实现原理与验证 - (void)setValue:(id)value forKey:(NSString *)key方法,实现原理与验证 功能:使用一个字符 ...