存档

文章标签 ‘链表’

STL笔记之slist

2014年7月26日 没有评论

slist是SGI STL里面的一个单向链表,不过这个不属于标准定义,所以,G++下面不能用,另外看了下VS2008里面也没有。不过看到书上这一部分讲解,还是配合SGI的代码做一个了解。一般情况下使用标准的list就可以满足要求了,而且会更加方便,list的分析可以参考STL笔记之list一文。因为slist是单向链表,所以它的迭代器类型为forward_iterator。
1. slist节点设计
链表最基本的结构就是指针域和数据域,对单向链表的节点而言,其拥有一个next指针,指向下一个节点[......]

继续阅读

STL笔记之list

2014年6月30日 没有评论

STL提供的list是一个双向链表容器,对应的迭代器类型为Bidirectional Iterators. 对于双向链表我们可以方便的在任意位置进行插入和删除操作,list每个节点的内存位置之间没有必然联系。
1. list 迭代器
链表由许多节点链接在一起构成,list中的节点的定义如下:

// ListNodeBase定义
struct _List_node_base {
_List_node_base* _M_next;
_List_node_base* _M_prev[......]

继续阅读

[驱动学习笔记]LIST_ENTRY和DPC定时器

2012年1月7日 4 条评论

链表的使用
链表是驱动开发中经常遇到的一个数据结构,主要是双向循环链表;要使用链表,需要用到一个LIST_ENTRY的结构,其定义如下:

typedef struct _LIST_ENTRY {
struct _LIST_ENTRY *Flink; // 指向下一个节点
struct _LIST_ENTRY *Blink; // 指向前一个节点
} LIST_ENTRY, *PLIST_ENTRY;

在实际的编程中,我们需要自己定义链表的节[......]

继续阅读