User Tools

Site Tools


class:kernel:linklist

LinkList

Inherited from NULL

Inherited by NULL

Friend class ListIterator

Description

LinkList类实现单向链表数据结构,只能顺序访问,不能随机访问。

Members

Public interface

Private interface

  • void remove(LinkNode * pPrevNode,LinkNode * pCurNode)

LinkNode * m_pBeginNode

头节点

LinkNode * m_pEndNode

尾节点

ulong m_ulCount

链表节点个数

MemPool * m_pListPool

用于分配节点的内存池

bool m_bSelfPool

分配节点的内存池是否由对象本身创建


LinkList(MemPool *pListPool=NULL)

  • function: 构造LinkList对象
  • parameters:
    1. [i]MemPool *pListPool=NULL: 用于分配链表节点的内存池,默认为0,由对象自己构建节点内存池
  • return value: 无

void insert(void * pRefData,void * pInsData)

  • function: 将pInsData插入到其数据为pRefData的节点前
  • parameters:
    1. [i]void * pRefData: 用于定位插入位置,插入到数据为pRefData的节点之前,若pRefData为空,则插入到链表最后
    2. [i]void * pInsData: 待插入到LinkList的数据
  • return value: 无

void pushBack(void * pData)

  • function: 将数据pData插入到list的尾部
  • parameters:
    1. [i]void * pData: 待插入的数据
  • return value: 无

void pushFront(void * pData)

  • function: 将数据pData插入到list的头部
  • parameters:
    1. [i]void * pData: 待插入的数据
  • return value: 无

void remove(void * pData)

  • function: 从list中删除第一个数据为pData的节点
  • parameters:
    1. [i]void * pData: 链表中待删除的数据
  • return value: 无

ulong getCount()

  • function: 获取list的节点个数
  • parameters: NULL
  • return value: List的节点个数

void clear()

  • function: 删除list的所有节点
  • parameters: NULL
  • return value: 无

void * getData(int index)

  • function: 获取第index个节点的数据
  • parameters:
    1. [i]int index: 待获取数据的节点在list中的序号,0-base
  • return value: 第index个节点数据的地址,若index超出list的范围,返回0

void * getFirst()

  • function: 获取第一个节点的数据
  • parameters: NULL
  • return value: 第一个节点数据的地址

void * getLast()

  • function: 获取最后一个节点的数据
  • parameters: NULL
  • return value: 最后一个节点数据的地址

void remove(LinkNode * pPrevNode,LinkNode * pCurNode)

  • function: 将pCurNode节点删除
  • parameters:
    1. [i]LinkNode * pPrevNode: 待删除节点的前一个节点
    2. [i]LinkNode * pCurNode: 待删除的节点
  • return value: 无
class/kernel/linklist.txt · Last modified: 2020/06/20 22:43 (external edit)