Ввод объекта в правильное положение связанного списка - PullRequest
0 голосов
/ 15 марта 2011

У меня есть CSV-файл с несколькими строками (группа #, количество элементов в группе, элемент #), и мне нужно разместить их внутри связанного списка. У меня это происходит во время чтения файла csv, помещая его в объект tmpPacket, затем помещая tmpPackets в nodeList (связанный список), и я пытаюсь добавить его в связанный список по порядку. # такой же, как и предыдущий, он добавляет его в начало этой группы, в противном случае - в конец связанного списка.

В любом случае, до сих пор он работал до такой степени, что он добавляет одну группу # в связанный список, но игнорирует остальные группы. Пример ввода будет:

4,3,2
5,1,1
4,3,1
4,3,3
2,2,2
3,1,1
2,2,1

и, в принципе, я хочу, чтобы при добавлении в связанный список он выглядел следующим образом:

4,3,1
4,3,2
4,3,3
5,1,1
2,2,1
2,2,2
3,1,1

(точный порядок не имеет значения. 4, 5, 2 и 3 могут быть в любом порядке, важно, чтобы 4 были вместе, 5 были вместе ...).

Вот что у меня есть, это только вывод 4 и ничего больше.

int currLength = nodeList.getLength();
        int finishNum = 0;
        for(int tmpGo=1;tmpGo<=currLength;tmpGo++){
            if(finishNum == 0){
                int itr = 0;
                int addEnd = 0;
                while(itr<nodeList.getLength()){
                    itr++;
                    if(nodeList.getEntry(itr).getPageID() == pageID) {
                        nodeList.add(tmpGo, tmpPacket);
                        finishNum = 1;
                        addEnd = 1;
                        break;
                    } 
                }


            } else {
                break;
            }
        }

1 Ответ

0 голосов
/ 15 марта 2011

Итак, я не знаю, каков ваш nodeList, но в соответствии с вашим первоначальным описанием вам понадобится:

int i;
int l = list.length();
for (i = 0; i < l; i++)
    if (list.getEntry(i).key() == newKey)
        break;
list.insert(newEntry, i);

В этом примере предполагается:

  • Записи в списке нумеруются от 0 до длины - 1
  • Вставка записи по длине аналогична добавлению ее

Однако, это не приведет к вашему результату выборки. Вместо этого вы получите:

4,3,3
4,3,1
4,3,2
5,1,1
2,2,1
2,2,2
3,1,1
...