单链表的一个缺陷
-触发条件
·长时间使用单链表对象频繁增加和删除数据元素
-可能的结果
·堆空间产生大量的内存碎片,导致系统运行缓慢
新的线性表
设计思路:
在单链表的内部增加一片预留的空间,所有Node对象都在这片空间中动态创建和动态销毁。
静态单链表的实现思路
-通过模板定义静态单链表类
-在类中定义固定大小的空间
-重写create和destroy函数,改变内存的分配和归还方式
-在Node类中重载operator new,用于在指定内存上创建对象
template<typename T,int N>
class StaticLinkList:public LinkList<T>
{
protected:
typedef typename LinkList<T>::Node Node;
struct SNode : public Node
{
void* operator new(unsigned int size,void* loc)
{
(void)size;
return loc;
}
};
unsigned char m_sp