listremove.cpp

来自「C++&datastructure书籍源码,以前外教提供现在与大家共享」· C++ 代码 · 共 20 行

CPP
20
字号
void Remove(Node * header, const string& key)
// post: all nodes containing key removed from list/header
{
   Node * before = header;
   Node * list = header->next;  // first "real node"

   // invariant: list = before->next, key doesn't appear in header->..->before
   while (list != 0)
   {   if (list->info == key)
       {   before->next = list->next;  // link around
           delete list;
           list = before->next;        // invariant maintained
       }
       else                            // invariant maintained
       {   before = list;
           list = list->next;         
       }
   }
 }

⌨️ 快捷键说明

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