Я пытаюсь добавить узел в заданную позицию в связанном списке, однако по некоторым причинам я застрял в бесконечном l oop. Когда я запускаю следующий код, оператор cout в l oop продолжает выводить вечно. Эта проблема возникает из-за того, что я неправильно делаю l oop, или из-за того, что я что-то испортил с тем, как я использовал указатели? Я впервые имею дело с указателями и думаю, что заблудился.
примечание: я пытаюсь научиться вставлять узел в заданную позицию, поэтому следующий код является полным синтаксически.
вот мой код:
void LList::InsertElement(){
// PRE: the N. O. LList is valid
// POST: a new element thing has been inserted at the
// given position of the list.If that position doesn't
// exist, the LList will be unchanged.
listnode * temp;
element thing;
int position;
int inc;
inc = 1;
cout << "Enter the position where you want to add the element at: ";
position = read_position();
cout << "Enter the element value: ";
thing = read_element();
temp = new listnode;
temp -> data = thing;
if (listSize==0 && position==1){
head = temp;
temp -> next = nullptr;}
else if(position<= listSize){
temp = head;
while(inc < position){ // for some reasons this loop is infinite
temp -> next = temp;
temp = temp -> next;
cout << endl<< "NEXT: " << temp -> data;
inc +=1;
}
temp -> data = thing;
}
else;
}