首页
社区
课程
招聘
[原创]一道C++程序员智力题,非高智商勿近
发表于: 2008-1-27 11:26 17155

[原创]一道C++程序员智力题,非高智商勿近

2008-1-27 11:26
17155
读懂以下代码,写出原理,同时写出 st0c<T>* InsertHashSubList(st0c<T>* p) 函数

template <typename T>
struct st0c
{ //sizeof = 0x0c
  BYTE m_by0;
  BYTE m_by1;
  BYTE m_by2; //off+2
  stxx<T>* m_dw4;  //off+4
  st0c* m_8;
};

template <typename T>
st0c<T>* GetClosestHashList(st0c<T>* a0, PBYTE pHash)
{
  if (a0 == NULL || pHash == NULL)
    return NULL;
  
  st0c<T>* pClosest = NULL;
  st0c<T>* p = a0;
  BYTE bl = a0->m_by1;
  BYTE cl = pHash[bl];
  while (p != NULL && bl < 20)
  {
    pClosest = p + cl; // 步进 0ch
    p = pClosest->m_8;
    if (p == NULL)
      break;
    bl++;
    cl = pHash[bl];
  }
  return pClosest;
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (46)
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
题外话:高智商的人做技术其实是这类人群最穷的人。
2008-1-27 11:30
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
这个现实太残酷了.
2008-1-27 13:11
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有点像算法代码
2008-1-27 18:24
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
5
我走错了,闪人
2008-1-28 00:29
0
雪    币: 8209
活跃值: (4513)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
6
暗梅悠闻花,卧枝伤恨底
2008-1-28 15:31
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
7
手太快,一下子点进来了,
卧枝伤底,卧梅闻花
2008-1-28 15:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
俺比楼上低啊
2008-1-28 15:57
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
9
大湿兄谦虚了
2008-1-28 16:01
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
10
走错路了
暗梅悠闻花,暗枝惠重蒂
2008-1-28 18:25
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
那个函数可以简化一下,这样看起来就比较容易了,但还是没看懂要做什么

template <typename T>
st0c<T>* GetClosestHashList(st0c<T>* p, BYTE hash[20])
{
  if (!p || !hash) return 0;
  
  for(BYTE i=p->m_1; i<20; ++i)
  {
    st0c<T>* closest = p+hash[i];
    if(!(p = closest->m_8)) return closest;
  }
  return 0;
}
2008-1-29 12:21
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
嗯...我来猜猜原理吧:
hash搜索,利用pHash数组的步进值取代线性探测.
st0c结构的其他几项意义不明.

----------------------------------------------------------

忽然想起来,这应该是trie树搜索,被"pHash"迷惑了.
2008-1-29 12:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼上几位,都索高枝伤哇,要是被LZ随便激一下就为LZ服务的才是枝伤底呢
2008-1-29 12:42
0
雪    币: 134
活跃值: (84)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
终于知道我智商低了。
2008-1-30 17:13
0
雪    币: 919
活跃值: (163)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
应该是线性搜索,根据pHash的偏移值确定结构体的地址
2008-1-30 22:38
0
雪    币: 106
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
[QUOTE=;]...[/QUOTE]
这不是遍历链表嘛
2008-2-2 19:26
0
雪    币: 175
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不小心点到此地,
2008-4-12 04:07
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
进来逛逛,沾沾'高智商'的光 :-)智力题?应该和程序没关系.我看出来了!是一幅图!!
2008-4-12 05:44
0
雪    币: 107
活跃值: (1683)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
19
不懂摸板加链表 数据结构没学好
2008-4-12 08:22
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
不小心进来了,完全眼花了,不知道几时才能达到这种境界……
2008-4-15 13:03
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
招聘考试碰上这题就傻眼了, 有做出来的提供下答案.
2008-4-15 16:27
0
雪    币: 89
活跃值: (214)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
不知道有什么用,看不明白。
什么时候搞一个病毒源码上来。呵呵……不过我还没到那一步!
2008-4-19 17:20
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
又是HASH...
2008-4-20 16:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我讨厌HASH
2008-4-27 03:22
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
诶呦,我迷路了,怎么转这来了?
2008-4-27 19:15
0
游客
登录 | 注册 方可回帖
返回
//