链表元素的比较和删除
来源:互联网 发布:郑州办公软件培训 编辑:程序博客网 时间:2024/06/03 19:17
已知a、b和c三个递增有序的链表,现在要求对a做如下操作:删除其中既即在b中出现又在c中出现的元素(注意同一表中的元素有可能重复)。
输入:
先在第一行输入3个小于100的正整数m,n,l分别表示链表a,b,c的长度,然后在第二行输入m个递增的正整数,第三行输入n个递增的正整数,第四行输入l个递增的正整数,分别为这三个链表的元素,
输出:
按顺序输出删除元素后的链表a的值,每个元素占一行。
输入样例:
3 8 5
23 47 88
2 5 7 9 47 47 88 99
10 20 30 40 47
输出样例:
23
88
#include <cstdio>#include <cstdlib>#include <iostream>using namespace std;typedef struct node{ int data; struct node *next;}LNode;LNode *Creat_LinkList(int n){ LNode *p,*q,*head; int x; head = (LNode*)malloc(sizeof(LNode)); head->next = NULL; p=head; q = p; while(n--) { scanf("%d",&x); p = (LNode*)malloc(sizeof(LNode)); p ->data = x; p ->next = NULL; q ->next = p; q = p; } return head;}void print(LNode *h){ LNode *p; p = h->next; while(p!=NULL) { printf("%d\n",p->data); p= p->next; }}void Differ_LinkList(LNode *head){ LNode *p; p=head; while(p->next!=NULL) { if(p->data == (p->next)->data) { p->next = (p->next)->next; } else p=p->next; }}void Del_LinkList(LNode *head,int x){ LNode *p; p = head; while(p->next!=NULL) { if((p->next)->data == x) { p->next = (p->next)->next; } p=p->next; }}void Deal_LinkList(LNode *a,LNode *b,LNode *c){ LNode *p; while(b->next!=NULL) { p = c; while(p->next!=NULL) { if((b->next)->data == (p->next)->data) { Del_LinkList(a,(b->next)->data); } p = p->next; } b=b->next; }}int main(){ LNode *a,*b,*c; int x,y,z; scanf("%d%d%d",&x,&y,&z); a = Creat_LinkList(x); b = Creat_LinkList(y); c = Creat_LinkList(z); Differ_LinkList(b); Differ_LinkList(c); Deal_LinkList(a,b,c); print(a); return 0;}
0 0
- 链表元素的比较和删除
- 链表元素的比较和删除
- C语言数组和链表删除元素速度比较
- js删除数组元素的方法比较
- 数据结构—链表元素的删除和插入
- 链表的概念以及原理 插入和删除元素
- 顺序表的比较和删除
- JAVA 队列增加和删除元素的几种接口比较
- 数组元素的删除、首元素和尾元素的删除、任意位置元素的删除
- 单向链表的删除元素,添加元素等操作
- 双向链表元素的删除
- 双向链表元素的删除
- 链表的相同元素删除
- Leetcode 删除重复的链表元素
- 删除链表中的重复的元素
- 关于删除链表元素的操作
- 删除链表中指定的元素
- 有序链表的重复元素删除
- 文件操作函数
- @date2016-03-16 00:05(软件工程男的日常)
- 归并两个递增序列链表为一个递减有序链表
- java 反转二叉树算法
- 开始吧
- 链表元素的比较和删除
- 第一篇
- SQLyog_Enterprise的简单使用
- Java集合类总结
- java “数石子”游戏算法
- 稀疏矩阵的转置
- 在创业公司做架构师
- Git分享(—)—工作流程和常用命令
- TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系