⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 free.cpp

📁 经典c++程序的实现
💻 CPP
字号:
class link {                   // A singly-linked list node
public:                        //   with freelist
  ELEM element;                // ELEM value for this node
  link* next;                  // Pointer to next node in list
  static link* freelist;       // Link class freelist
  link(const ELEM& elemval, link* nextval =NULL)
    { element = elemval;  next = nextval; }
  link(link* nextval =NULL) { next = nextval; }
  ~link() { }                  // Destructor: take no action
  void* operator new(size_t);  // Overloaded new operator
  void operator delete(void*); // Overloaded delete operator
};


// This creates space for the freelist variable
link* link::freelist = NULL;

void* link::operator new(size_t) { // Overload new
  if (freelist == NULL) return ::new link; // Create new space
  link* temp = freelist;       // Otherwise, get from freelist
  freelist = freelist->next;
  return temp;                    // Return the link node
}

void link::operator delete(void* ptr) { // Overload delete
  ((link*)ptr)->next = freelist;  // Put on freelist
  freelist = (link*)ptr;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -