现在的位置: 首页 > 综合 > 正文

算法不会,尚能饭否之集合(Set)

2019年06月10日 ⁄ 综合 ⁄ 共 1435字 ⁄ 字号 评论关闭

哎,这个年过的让我有点懒了。你懂得!程序员是不能懒的,所以还是逼着自己把这个集合的相关操作的程序写出来吧。我一直都告诉自己,程序不是想出来,是写出来的,程序不是在你的大脑里运行的,程序是在你的电脑上运行的,是吧,伙计!

如果,我想要一直的再懒下去,恐怕,链表我都不会实现了。呵呵!程序员需要的就是那种手摸键盘的感觉,你要是手不摸键盘就痒痒的,那你就该把手放到键盘上去磨磨了,至少,看完这个我写的程序你心里也该痒痒了。我知道你,你肯定实现的比我好!是吧,朋友!因为,我很菜!我都能实现,更何况你呢?

              那我就在这里献丑了,讲讲我实现的集合操作吧。如何实现,用力那些技巧?我会一一说出来的。来吧,伙计,走进集合操作的世界吧,这里很精彩。你会喜欢这里的,如果你喜欢,那就把我的博客加为RSS吧!希望你和我一起交流,你可以发帖给我提出你的问题,你也可以加我QQ535064959和我私聊。来吧!

              我的实现总的说起来是很简单的,也是很方便的。下面是集合类:

我是用链表实现集合元素的存储的。为什么不采用数组,原因有很多,但主要是我不喜欢数组。应该你也和我一样吧。哈哈!

//集合的操作类

class SetList

{

public:

              SetList();

              ~SetList();

              void AddMember(const int &);              //集合中添加新元素

              void DelMember(const int &);              //删除集合中的元素

              int Contains(const int &);                //判断元素是否在集合中

              int Min();                                //求集合中的最小值

              int Max();                                //求集合中的最大值

              void Union(SetList, SetList);                      //求集合的并集

              void Intersection(SetList, SetList);      //求集合的交集

              void Difference(SetList, SetList);        //求集合的差集

              int IsEmpty();                            //求集合是否为空

              void MakeEmpty();                         //将集合置空

              int SubSet(SetList, SetList);             //判断某一集合是否为另一个集合的子集

 

private:

              Node *first; //定义一个指向头节点的指针

              Node *current; //当前指针的位置

};

 

看看需要实现的功能,是很简单的吧!

 

由于代码很长,现在我把下载地址贴出!

代码下载地址:http://download.csdn.net/source/3048649

抱歉!评论已关闭.