code: public void insertBetween(Instruction _prev, Instruction _next, Instruction _newOne) {
        _newOne.setNextExpr(null);
        _newOne.setPrevExpr(null);
        if (_prev == null) {
           // this is the new head
           if (_next == null) {
              head = tail = _newOne;
           } else {
              _newOne.setNextExpr(head);
              head.setPrevExpr(_newOne);
              head = _newOne;
           }
        } else if (_next == null) {
           _newOne.setPrevExpr(tail);
           tail.setNextExpr(_newOne);
           tail = _newOne;
        } else {
           _newOne.setNextExpr(_prev.getNextExpr());
           _newOne.setPrevExpr(_next.getPrevExpr());
           _prev.setNextExpr(_newOne);
           _next.setPrevExpr(_newOne);
        }
  
     }
docs: Insert the given instruction (_newone) between the existing entries (_prev and _next).
  @param _prev
  @param _next
  @param _newOne