31. 以下算法实现若开散列表HP中存在键值为K的结点,则将其删除。请分析程序,并在______上填充合适的语句。
void delete_openhash(keytype K,openhash HP)
  {i=H(K);
    if(HP[i]==NULL)return;   /*空表则退出*/
     p=HV[i];
     if(p—>key==K){______=p—>next;free(p);return;)
                              /*表首结点为待删除结点时的删除*/
  while(p—>next!=NULL)     /*其他情况下的删除*/
    { q=p;p=p—>next;
       if(p—>key==K){______=p—>next;delete(p);return;)
    }
  }