patton_jerry
驱动牛犊
驱动牛犊
  • 注册日期2005-03-17
  • 最后登录2005-04-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5211回复:6

关于 LIST_ENTRY 定义的双向链表遍历的问题

楼主#
更多 发布于:2005-04-15 08:50
用 LIST_ENTRY 定义的双向链表(表头?),经过初始化,可以在头部和尾部添加和删除项。可是我需要在不改变列表的情况下访问列表项的内容。请问怎样才能实现?有没有类似Next指针的东西?
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-15 10:30
用 LIST_ENTRY 定义的双向链表(表头?),经过初始化,可以在头部和尾部添加和删除项。可是我需要在不改变列表的情况下访问列表项的内容。请问怎样才能实现?有没有类似Next指针的东西?

当然能,看LIST_ENTRY这个数据结构的定义
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
patton_jerry
驱动牛犊
驱动牛犊
  • 注册日期2005-03-17
  • 最后登录2005-04-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-15 15:01
是在自己的结构体里定义一个LIST_ENTRY数据项吗?是不是一定要在第一项?
patton_jerry
驱动牛犊
驱动牛犊
  • 注册日期2005-03-17
  • 最后登录2005-04-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-15 15:10
是否这样?
typedef _MyObj{
    LIST_ENTRY;
    .....
    .....
}MyObj;

然后呢?
执行一系列InsertHeadList( &MyObj ),然后用MyObj.link.Flink
遍历整个链表?

我这人悟性很差的,又不敢乱试。出错就重启。机子配置差,一次重启要10分钟。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-15 16:34
是在自己的结构体里定义一个LIST_ENTRY数据项吗?是不是一定要在第一项?

是啊,但不必是第一项,有个宏CONTAINING_RECORD帮你找到结构头
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
dalaoban
驱动牛犊
驱动牛犊
  • 注册日期2004-02-02
  • 最后登录2009-12-07
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-18 22:15
出错就重启。机子配置差,一次重启要10分钟。 [/quote]

为什么不用虚拟机呢?很难想象如果没有虚拟机,我还会不会搞驱动。
zhoujiamurong
驱动小牛
驱动小牛
  • 注册日期2006-03-20
  • 最后登录2009-05-06
  • 粉丝4
  • 关注0
  • 积分1081分
  • 威望360点
  • 贡献值0点
  • 好评度215点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-12-04 10:23
pListEntry = pListEntry->Flink;不就是Next么?
游客

返回顶部