- 浏览: 731430 次
- 性别:
- 来自: 嘉兴
文章分类
- 全部博客 (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 834希尔排序的概述: a[0]...a[n-1 ... -
归并排序
2015-06-20 15:28 891public class MergeSort { pub ... -
插入排序
2015-06-20 15:27 479/** * 插入排序1 容易理解 * * ... -
有序线性链表归并
2013-10-05 11:30 1554#include<stdio.h> #incl ... -
Trie树 应用 Phone List
2012-06-15 11:21 1171Phone List 时间限 ... -
Trie树 单词查找树 键树(JAVA版附分析说明)
2012-06-13 10:27 5164来源于英文“retrieval”. ... -
Trie树 单词查找树 键树
2012-06-12 08:59 1151转自:http://zh.wik ... -
数字金额转中文大写金额
2010-11-26 15:09 1421/** * 用来将数字金额转化成中文大写的金额 ... -
汉诺塔递归算法
2010-11-25 08:17 1347import java.util.Scanner; /* ... -
约瑟夫出圈
2010-11-24 20:45 1091#include<iostream> #incl ... -
SmartHashSet只是为了解释HashSet的原理
2010-07-26 11:11 1356写该类的目的只是为了 ... -
二叉树中序遍历非递归算法
2010-06-29 23:17 1718#include<iostream> usi ... -
二叉树的创建
2010-06-29 23:15 1129#include<iostream> usi ... -
哈弗曼树建立与哈弗曼编码
2010-06-29 23:12 1241#include<iostream> #de ... -
二叉排序树转双向链表(要求无任何新增节点)
2010-06-29 23:07 2482题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双 ... -
线索二叉树中插入结点
2010-06-29 23:05 1880#include<iostream> usi ... -
二叉排序树的递归与非递归查找
2010-06-29 22:58 2301#include<iostream> usi ... -
二叉树中序线索化及查找某一结点的前驱,后继结点
2010-06-29 22:54 2676#include<iostream> usi ... -
十字链表定义创建查找
2010-06-29 22:44 1314#include<iostream> #defi ... -
稀疏矩阵转置
2010-06-29 22:39 1656#include<iostream> #defi ...
相关推荐
总结来说,这个实验报告涉及了单链表的基础操作,包括创建、插入、输出、查询、删除等,以及使用单链表实现集合的并、交、差运算的概念。在实际应用中,这些基础操作是数据结构和算法学习的重要组成部分,对于理解...
总之,C语言实现集合并交差是通过自定义单链表数据结构并编写相应的操作函数来完成的。这种方法不仅有助于理解数据结构和算法,还能在实际项目中灵活应用。在进行集合操作时,要特别注意内存管理,确保正确分配和...
集合的并交差运算数据结构课程设计 本文档主要介绍集合的并交差运算的数据结构课程设计,...我们使用顺序表来实现集合的并交差运算,并提供了一些基本操作。这些操作可以对顺序表进行初始化、插入、删除、遍历等操作。
- **AuB(A, B, C)**:实现集合A与集合B的并集操作,并将结果保存在集合C中。 - 首先将集合A的所有元素复制到集合C中。 - 然后遍历集合B的元素,如果该元素不在集合C中,则添加到集合C中。 - 如果集合C已满,则...
数据结构实验-集合的并交差运算实验报告.doc
【基于顺序表实现集合的并交差运算实验】 在计算机科学中,集合是包含唯一元素的数据结构。在本实验中,我们将使用顺序表(Sequential List)来实现集合的并、交和差运算。顺序表是一种线性表,其中元素按照它们在...
严蔚敏版数据结构C语言,第一个实验集合并交差,用C-free编写的C++文件
【基于顺序表实现集合的并交差运算实验】 在计算机科学中,集合是存储和处理一组唯一元素的数据结构。在本实验中,我们将基于顺序表(Sequential List)来实现集合的并、交、差运算。顺序表是一种简单的线性数据...
数据结构的实验,用链表实现对集合的相关运算。
在计算机科学中,集合是数据结构的一种,用于存储无序且不重复的元素。集合的并、交和差运算在编程中广泛应用于数据处理和算法设计。...通过熟练掌握堆排序和集合操作,开发者可以优化代码性能,提升程序的效率。
本文件主要涉及的是如何使用Java语言实现单链表的基础操作以及集合的交、并和差运算。下面将详细阐述这些知识点。 首先,单链表是一种基本的数据结构,由一系列节点组成,每个节点包含数据域和指向下一个节点的引用...
编制一个能演示执行集合的并、交、差运算的程序。 (1)设计集合的并、交、差运算函数(集合的元素不能重复) (2)编制测试函数测试集合运算 (3)提示:以有序链表表示集合
总的来说,C语言中实现集合的交差并操作主要依赖于链表数据结构和基础的算法。虽然这种方法的效率可能不如C++中的STL库,但在理解和实现基本数据结构和算法方面提供了很好的实践机会。通过优化数据结构(如使用二叉...
以上是对"数据结构的集合的并、交和差运算"这一主题的详细解释,涵盖了理论概念、C++中的实现方式以及实际应用。通过理解这些基础知识,开发者可以更好地处理和操作数据,提高代码的效率和质量。
该项目通过单链表实现了集合的基本操作和集合运算。单链表作为一种线性数据结构,在处理集合运算时具有较高的灵活性。通过上述的关键技术点分析,我们可以了解到如何使用单链表来有效地实现集合的交集、并集和差集...
集合运算是集合操作的基础,包括集合的并交差、集合合并、删除、判断子集、求补集等操作。在本文中,我们将详细介绍集合运算的实现方法,并提供相应的代码实现。 1. 集合的定义 在C语言中,我们可以使用结构体来...
用c++语言实现集合的并、交、差、插入、删除运算
运用数据结构中的链表的相关的知识,实现集合的交并差,加深对链表的插入删除清空等操作的理解。