code: public void addRow(boolean[] values) {
      Node<ColumnName> prev = null;
      for(int i=0; i < values.length; ++i) {
        if (values[i]) {
          ColumnHeader<ColumnName> top = columns.get(i);
          top.size += 1;
          Node<ColumnName> bottom = top.up;
          Node<ColumnName> node = new Node<ColumnName>(null, null, bottom, 
                                                       top, top);
          bottom.down = node;
          top.up = node;
          if (prev != null) {
            Node<ColumnName> front = prev.right;
            node.left = prev;
            node.right = front;
            prev.right = node;
            front.left = node;
          } else {
            node.left = node;
            node.right = node;
          }
          prev = node;
        }
      }
    }
docs: Add a row to the table.
  @param values the columns that are satisfied by this row