вставка связанного списка в начале и в конце

#c #linked-list #singly-linked-list

#c #связанный список #single-linked-list

Вопрос:

Почему во время вставки двойные указатели отправляются для вставки только в начале и в конце…

 void append(Node** head_ref, int new_data)  //end
void push(Node** head_ref, int new_data)    //beginning
  

но не во время вставки между некоторыми узлами

 void insertAfter(Node* prev_node, int new_data)   //after some node
  

Комментарии:

1. Это способ эмулировать передачу по ссылке в C. В C это не требуется, поскольку у него есть фактические ссылки.

2. если я использую node * только тогда head всегда остается нулевым…

3. пожалуйста, уточните, сэр

4. В качестве упражнения попробуйте реализовать свою структуру данных с append(Node* head_ref, int new_data) помощью . Обратите пристальное внимание на крайний случай, когда список пуст. Двойной указатель позволяет аккуратно пропустить этот крайний случай.

5. большое спасибо, сэр… когда список будет пуст, мы добавим первый узел, и для этого нам нужно изменить наш головной указатель …!! я прав, сэр??