数据结构问题? 这几天做一个服务器,遇到点问题,请大家帮忙解决。我的服务器接受客户的登录,并在客户登录后记录客户的各种信息,并且将在线的其他客户名,发送给登录的客户;同时在服务器运行过程中,客户的状态会发生变化,这个时候也要将发生变化的客户状态发送给其他的客户。请问我应该使用什么样的数据结构来存储客户信息,是数组、链表还是二叉树...?如何做可以只发送变化的客户信息,而不是所有的客户信息? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 客户信息做成数据库,每个客户端在新登陆或信息变动的时候向服务器发起请求,服务器接收到请求之后,用查询来分辨是新登陆还是后变更(用标志位表示),如果是新登陆则广播到所有客户端,如果是变更,只广播变更部分。变更信息的标志可以在客户端做且只上传变更消息,这样省去了服务器判断变更数据的麻烦。例:数据报格式1*aaa|4*zhangyan|8*beijing这样统一数据报格式,就方便了。不知楼主是否此意。 存在数据库里的必要性不大,每次有新的客户登陆,都有服务器来操作发给客户端只是简单的报文如:12人+XX1,XX2....每客户端进入服务器,提交,插到链表末尾 退出,删除该节点 利用双向列表,维护头尾指针更方便点 应该是个图的结构。用链表应该可以吧,每个结点中包含一个结点指针的vector,用于表示本结点与其它结点的关系。我觉得实际运行时应该不会是NxN次的遍历次数。 不会吧?链表的遍历只是O(n),目前最好的大约是log(n),可以这两个复杂度在n<100的情况下,两者没有什么太大的差别.楼主所说的速度问题,其瓶颈大概不在此处,怕是另有问题.一孔之见. 我觉得还是链表比较好,如lygfqy(风清扬) ( ) 所说,加一个数组在里面,效率也还可以! 某专用IM“回帖哨兵”功能测试贴(2) 使用IJL库遇到的问题 请大家帮忙,救急,多谢。CListCtrl类变量与数据库的连接 问一个基础问题 下面情况采用什么技术好呢?请详细介绍。 ***如何把中文字符转换为宽字符???***急**** unexpected end of file while looking for precompiled header directive这样的粗错误怎样解决 nbxs来领分 MFC 读取文本文件一行再删除该行 关于mfc读取txt文本数据到列表控件里 关于list 的问题! 新手问题,请大家帮帮忙
例:数据报格式
1*aaa|4*zhangyan|8*beijing
这样统一数据报格式,就方便了。不知楼主是否此意。
发给客户端只是简单的报文
如:
12人+XX1,XX2....
每客户端进入服务器,提交,插到链表末尾
退出,删除该节点
利用双向列表,维护头尾指针更方便点