搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 1204|回复: 14
收起左侧

怎么在C中实现set集合

[复制链接]

该用户从未签到

7

主题

6

好友

1499

积分

Continue

积分
1499
发表于 2013-4-8 10:01:23 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
我要把C++的代码移植到C上实现!!要在C语言中实现set集合
前边我定义了这么一个结构体
struct Point{
     int p[maxk];
}
后边我要用到set集合的操作
set<Point> ans
insert()
size()
earse()
clear()
rbegin()
大概有这些操作~
求破之~~!!!!!!!!!大神有请~

签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

该用户从未签到

11

主题

37

好友

1万

积分

第一章

积分
18487
发表于 2013-4-8 10:22:25 | 显示全部楼层
额。定义一个菜单函数怎么样?
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
发表于 2013-4-8 10:27:41 | 显示全部楼层
不明所以
等死星人
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

6

好友

1499

积分

Continue

积分
1499
 楼主| 发表于 2013-4-8 10:35:04 | 显示全部楼层

譬如我要在C语言实现这么个函数~需要用到set集合
void insertPossibility(const Point &point)
{
    ans.insert(point);
    if(ans.size() > m)
    {
        set<Point>::reverse_iterator it = ans.rbegin();
        ans.erase(*it);
    }
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

6

好友

1499

积分

Continue

积分
1499
 楼主| 发表于 2013-4-8 10:35:36 | 显示全部楼层
汝欠咱的一生 发表于 2013-4-8 10:22
额。定义一个菜单函数怎么样?

你用的是java么?
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

37

好友

1万

积分

第一章

积分
18487
发表于 2013-4-8 11:26:13 | 显示全部楼层
weeken2013 发表于 2013-4-8 10:35
你用的是java么?

额。C。定义菜单,需要就调用。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

6

好友

1499

积分

Continue

积分
1499
 楼主| 发表于 2013-4-8 12:26:09 | 显示全部楼层
汝欠咱的一生 发表于 2013-4-8 11:26
额。C。定义菜单,需要就调用。

菜单为何物~C有点陌生
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

20

主题

27

好友

1万

积分

第一章

积分
11792
发表于 2013-4-8 13:46:05 | 显示全部楼层
其实可以用单向链表来解决啊
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

258

主题

314

好友

3万

积分

第二章

积分
35715
发表于 2013-4-8 16:25:42 | 显示全部楼层
C++的set是用红黑树实现的,不过如果不要效率你用链表之类的实现应该也行。
话说你不需要C++ set所有的功能吧,貌似你不需要用到查找操作?
用C实现C++的东西还是挺麻烦的,首先C不支持泛型,所以不可能有set<Point>的写法,要达到泛型的效果的话只能用void*乱搞了吧
struct里也不能有函数,不过可以写一些全局函数接受struct为第一个参数
博客什么的求人气 http://bimania.org
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

6

好友

1499

积分

Continue

积分
1499
 楼主| 发表于 2013-4-8 17:17:48 | 显示全部楼层
轻舟过 发表于 2013-4-8 16:25
C++的set是用红黑树实现的,不过如果不要效率你用链表之类的实现应该也行。
话说你不需要C++ set所有的功能 ...

所以我现在胯下有种蛋蛋的忧伤啊~
现在都完全不考虑效率~只求完成上边几个功能~
再写一个结构体函数是不是有点难啊~貌似用链表比较方便啊~
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

6

好友

1499

积分

Continue

积分
1499
 楼主| 发表于 2013-4-8 17:18:24 | 显示全部楼层
狂奔的瘦子 发表于 2013-4-8 13:46
其实可以用单向链表来解决啊

好主意啊
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

258

主题

314

好友

3万

积分

第二章

积分
35715
发表于 2013-4-8 21:40:19 | 显示全部楼层
weeken2013 发表于 2013-4-8 17:17
所以我现在胯下有种蛋蛋的忧伤啊~
现在都完全不考虑效率~只求完成上边几个功能~
再写一个结构体函数是不 ...

甚至数组都可以啊
用C肯定不能写成s.insert(x)吧,C里面应该是insert(&s, x)这种形式的吧?
博客什么的求人气 http://bimania.org
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

21

主题

63

好友

1万

积分

第一章

积分
18553
发表于 2013-4-9 00:12:15 | 显示全部楼层
感觉都好厉害啊,不懂数据结构和算法的泪目飘过
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

20

好友

1万

积分

第一章

积分
17868
发表于 2013-4-9 13:43:46 | 显示全部楼层
struct里面不能有函数么??!
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

45

好友

4035

积分

序章

积分
4035
发表于 2013-4-9 16:20:02 | 显示全部楼层
如果只装int 字符串 用哈希表吧
写起来比二叉树简单多了 效率也很高
缺点是无序集 不能begin end
链表 二叉树是有序集
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-6-16 20:27 , Processed in 0.124722 second(s), 31 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表