weeken2013
怎么在C中实现set集合

我要把C++的代码移植到C上实现!!要在C语言中实现set集合

前边我定义了这么一个结构体

struct Point{

int p[maxk];

}

后边我要用到set集合的操作

set *本站禁止HTML标签噢* ans

insert()

size()

earse()

clear()

rbegin()

大概有这些操作~

求破之~~!!!!!!!!!大神有请~

南南
如果只装
展开Biu

如果只装int 字符串 用哈希表吧

写起来比二叉树简单多了 效率也很高

缺点是无序集 不能begin end

链表 二叉树是有序集

[查看全文]
PM_PM
里面不能有函数么
展开Biu

struct里面不能有函数么??!

[查看全文]
moxiagy
感觉都好厉害啊
展开Biu

@@35!! 感觉都好厉害啊,不懂数据结构和算法的泪目飘过

[查看全文]
轻舟过
所以我现在胯下有种蛋蛋的忧伤啊
展开Biu

weeken2013 发表于 2013-4-8 17:17

所以我现在胯下有种蛋蛋的忧伤啊~

现在都完全不考虑效率~只求完成上边几个功能~

再写一个结构体函数是不 ...

甚至数组都可以啊

用C肯定不能写成s.insert(x)吧,C里面应该是insert(&s, x)这种形式的吧?

[查看全文]
weeken2013
狂奔的瘦子
展开Biu

狂奔的瘦子 发表于 2013-4-8 13:46

其实可以用单向链表来解决啊

好主意啊

[查看全文]
weeken2013
是用红黑树实现的
展开Biu

轻舟过 发表于 2013-4-8 16:25

C++的set是用红黑树实现的,不过如果不要效率你用链表之类的实现应该也行。

话说你不需要C++ set所有的功能 ...

所以我现在胯下有种蛋蛋的忧伤啊~

现在都完全不考虑效率~只求完成上边几个功能~

再写一个结构体函数是不是有点难啊~貌似用链表比较方便啊~

[查看全文]
轻舟过
是用红黑树实现的
展开Biu

C++的set是用红黑树实现的,不过如果不要效率你用链表之类的实现应该也行。

话说你不需要C++ set所有的功能吧,貌似你不需要用到查找操作?

用C实现C++的东西还是挺麻烦的,首先C不支持泛型,所以不可能有set *本站禁止HTML标签噢* 的写法,要达到泛型的效果的话只能用void*乱搞了吧

struct里也不能有函数,不过可以写一些全局函数接受struct为第一个参数

[查看全文]
狂奔的瘦子
其实可以用单向链表来解决啊
展开Biu

其实可以用单向链表来解决啊

[查看全文]