- 浏览: 735874 次
- 性别:
- 来自: 嘉兴
文章分类
- 全部博客 (386)
- Struts1.1 (2)
- Database (18)
- Core Java (15)
- Log4j (4)
- SSH (0)
- Dao (1)
- Architecture Design (1)
- References (2)
- Eclipse&MyEclipse (10)
- Hibernate (7)
- Spring (8)
- JavaMail (1)
- Data Structure And Algorithm (48)
- Struts 2 (2)
- SSI (1)
- SSL (2)
- JSTL (1)
- EJB3 (2)
- NET (2)
- XML (2)
- Components (2)
- Ant (3)
- Multi Thread (1)
- Performance Monitoring (1)
- Web Server (17)
- Oracle (1)
- jQuery (8)
- Regular Expression (1)
- Weblogic (1)
- Exception (1)
- Security (2)
- File Manipulation (1)
- JavaScript (12)
- JVM (2)
- HTML&DIV&CSS (4)
- Android (10)
- Beyond GFW (0)
- Business (0)
- SVN (6)
- 虚拟主机 (1)
- Virtual Host (3)
- My mentality (5)
- OS (15)
- ISPMP (3)
- Magento (5)
- Jsoup&HttpClient (7)
- LINUX (9)
- Database Design (0)
- Power Designer (1)
- TaobaoOpenPlatform (2)
- C/C++ (3)
- Maven (11)
- Quartz (1)
- Load Balance (1)
- Zabbix (4)
- Product&Business (1)
- Pay Interface (1)
- Tomcat (2)
- Redis (1)
- 集群 (1)
- Session (1)
- 共享Session (1)
- Jedis (1)
- jenkins (1)
- 持续集成 (1)
- Web前端 (1)
最新评论
-
aqq331325797:
特意注册账号上来说一句。牛逼!
swagger2.2.2 与 spring cloud feign冲突 -
KitGavinx:
跨顶级域名怎么保持sessionid一致?
Tomcat7集群共享Session 基于redis进行统一管理 -
jaychang:
dujianqiao 写道HI ,能否给一个完整的demo 啊 ...
淘宝订单同步方案 - 丢单终结者 -
GGGGeek:
找了一会儿,感觉mybatis应该没有这种操作,直到发现博主的 ...
mybatis collection list string -
dujianqiao:
HI ,能否给一个完整的demo 啊 ?
淘宝订单同步方案 - 丢单终结者
#include<iostream> using namespace std; typedef struct Node{ char data; Node *next; }Node,*LinkList; #define SIZE sizeof(Node) #define FALSE 0 #define TRUE 1 //初始化集合 void InitLinkList(LinkList Head) { char ch;Node *p=Head; Head->next=NULL; Head->data='\0'; cin>>ch; while(ch!='#') { Node *newNode=(Node*)malloc(SIZE); newNode->data=ch; p->next=newNode; p=p->next; cin>>ch; } p->next=NULL; } //检查p1或p2所指向数据结点该不该加入到Head为起始的集合中^-^有点拗口,表达不是很好 int Check(char ch,LinkList Head) { Node *temp=Head->next; int flag=TRUE; while(temp!=NULL) { if(temp->data==ch){//不需要将数据插入 flag=FALSE; return flag; } temp=temp->next; } return flag; } //合并两个集合 LinkList Merge(LinkList Head1,LinkList Head2) { LinkList Head=(Node*)malloc(SIZE); Head->data='\0';Head->next=NULL; Node *p1=Head1->next; Node *p2=Head2->next; Node *p=Head; while(p1!=NULL&&p2!=NULL) { if(p1->data==p2->data) { if(Check(p1->data,Head)==TRUE) { Node *newNode=(Node*)malloc(SIZE); newNode->data=p1->data; p->next=newNode; p=newNode; p->next=NULL; } } else { if(Check(p1->data,Head)==TRUE) { Node *newNode=(Node*)malloc(SIZE); newNode->data=p1->data; p->next=newNode; p=newNode; p->next=NULL; } if(Check(p2->data,Head)==TRUE) { Node *newNode=(Node*)malloc(SIZE); newNode->data=p2->data; p->next=newNode; p=newNode; p->next=NULL; } } p1=p1->next; p2=p2->next; } while(p1!=NULL) { if(Check(p1->data,Head)==TRUE) { Node *newNode=(Node*)malloc(SIZE); newNode->data=p1->data; p->next=newNode; p=newNode; p->next=NULL; } p1=p1->next; } while(p2!=NULL) { if(Check(p2->data,Head)==TRUE) { Node *newNode=(Node*)malloc(SIZE); newNode->data=p2->data; p->next=newNode; p=newNode; p->next=NULL; } p2=p2->next; } return Head; } //集合A中的元素,B中是否存在 int IsExist(char data,LinkList Head) { Node *p=Head->next; int flag=FALSE; while(p!=NULL) { if(p->data==data) return flag=TRUE; p=p->next; } return flag; } int IsExist2(char data,LinkList Head) { Node *p=Head->next; int flag=FALSE; while(p!=NULL) { if(p->data==data) return flag; p=p->next; } return flag=TRUE; } //两个集合的差集 LinkList Deprive(LinkList Head1,LinkList Head2) { LinkList Head=(Node*)malloc(SIZE); Node *p=Head; Node *p1=Head1->next; while(p1!=NULL) { if(IsExist2(p1->data,Head2)==1) { Node *newNode=(Node*)malloc(SIZE); newNode->data=p1->data; p->next=newNode; p=newNode; p->next=NULL; } p1=p1->next; } return Head; } //两个集合交集 LinkList Insection(LinkList Head1,LinkList Head2) { Node *p1=Head1->next; //Node *p2=Head2->next; LinkList Head=(Node*)malloc(SIZE); Head->data='\0';Head->next=NULL; Node *p=Head; while(p1!=NULL) { if(IsExist(p1->data,Head2)==1) { Node *newNode=(Node*)malloc(SIZE); newNode->data=p1->data; p->next=newNode; p=newNode; p->next=NULL; } p1=p1->next; } return Head; } //打印集合元素 void PrintLinkList(LinkList Head) { Node *p=Head->next; while(p!=NULL) { cout<<p->data; p=p->next; } cout<<"\n"; } int main() { char cmd; do{ cout<<"输入两个集合的元素,输完一个集合的元素,按#结束\n"; LinkList head1=(Node*)malloc(SIZE); LinkList head2=(Node*)malloc(SIZE); InitLinkList(head1);InitLinkList(head2); Node *Head1=Merge(head1,head2); cout<<"两个集合合集为\n"; PrintLinkList(Head1); Node *Head2=Insection(head1,head2); cout<<"两个集合交集为\n"; PrintLinkList(Head2); Node *Head3=Deprive(head1,head2); cout<<"两个集合差集为\n"; PrintLinkList(Head3); cout<<"按y/Y继续,否则结束\n"; cin>>cmd; }while(cmd=='y'||cmd=='Y'); return 0; }
发表评论
-
【排序算法系列】希尔排序
2015-12-05 16:14 842希尔排序的概述: a[0]...a[n-1 ... -
归并排序
2015-06-20 15:28 898public class MergeSort { pub ... -
插入排序
2015-06-20 15:27 485/** * 插入排序1 容易理解 * * ... -
有序线性链表归并
2013-10-05 11:30 1564#include<stdio.h> #incl ... -
Trie树 应用 Phone List
2012-06-15 11:21 1180Phone List 时间限 ... -
Trie树 单词查找树 键树(JAVA版附分析说明)
2012-06-13 10:27 5181来源于英文“retrieval”. ... -
Trie树 单词查找树 键树
2012-06-12 08:59 1157转自:http://zh.wik ... -
数字金额转中文大写金额
2010-11-26 15:09 1429/** * 用来将数字金额转化成中文大写的金额 ... -
汉诺塔递归算法
2010-11-25 08:17 1355import java.util.Scanner; /* ... -
约瑟夫出圈
2010-11-24 20:45 1101#include<iostream> #incl ... -
SmartHashSet只是为了解释HashSet的原理
2010-07-26 11:11 1362写该类的目的只是为了 ... -
二叉树中序遍历非递归算法
2010-06-29 23:17 1724#include<iostream> usi ... -
二叉树的创建
2010-06-29 23:15 1135#include<iostream> usi ... -
哈弗曼树建立与哈弗曼编码
2010-06-29 23:12 1250#include<iostream> #de ... -
二叉排序树转双向链表(要求无任何新增节点)
2010-06-29 23:07 2494题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双 ... -
线索二叉树中插入结点
2010-06-29 23:05 1893#include<iostream> usi ... -
二叉排序树的递归与非递归查找
2010-06-29 22:58 2310#include<iostream> usi ... -
二叉树中序线索化及查找某一结点的前驱,后继结点
2010-06-29 22:54 2686#include<iostream> usi ... -
十字链表定义创建查找
2010-06-29 22:44 1323#include<iostream> #defi ... -
稀疏矩阵转置
2010-06-29 22:39 1665#include<iostream> #defi ...
相关推荐
总结来说,这个实验报告涉及了单链表的基础操作,包括创建、插入、输出、查询、删除等,以及使用单链表实现集合的并、交、差运算的概念。在实际应用中,这些基础操作是数据结构和算法学习的重要组成部分,对于理解...
总之,C语言实现集合并交差是通过自定义单链表数据结构并编写相应的操作函数来完成的。这种方法不仅有助于理解数据结构和算法,还能在实际项目中灵活应用。在进行集合操作时,要特别注意内存管理,确保正确分配和...
本文件主要涉及的是如何使用Java语言实现单链表的基础操作以及集合的交、并和差运算。下面将详细阐述这些知识点。 首先,单链表是一种基本的数据结构,由一系列节点组成,每个节点包含数据域和指向下一个节点的引用...
该项目通过单链表实现了集合的基本操作和集合运算。单链表作为一种线性数据结构,在处理集合运算时具有较高的灵活性。通过上述的关键技术点分析,我们可以了解到如何使用单链表来有效地实现集合的交集、并集和差集...
为了实现集合的运算,选择了单链表作为数据结构。单链表是一种线性结构,其中每个元素(节点)包含一个数据域和一个指针域,指针域指向下一个节点的位置。选择单链表的原因在于它的灵活性和效率:在链式存储结构中,...