code: void createRowElementLinkedLists( int leftmost[] , int w[]) {
          for (int k = 0; k < n; k++) {
              w[head+k] = -1; w[tail+k] = -1;  w[nque+k] = 0;
          }
  
          // scan rows in reverse order creating a linked list of nz element indexes in each row
          for (int i = m-1; i >= 0; i--) {
              int k = leftmost[i];      // 'k' = left most column in row 'i'
              if( k == -1 )             // row 'i' is empty
                  continue;
              if( w[nque+k]++ == 0 )
                  w[tail+k] = i;
              w[next+i] = w[head+k];
              w[head+k] = i;
          }
      }
docs: Constructs a linked list in w that specifies which elements in each row are not zero (nz)
  @param leftmost index first elements in each row
  @param w work space array