Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void add_newpoint(l2l*list, struct point*p , int index){ //Добавление точки в произввольное место (то, что нужно было реализовать)
- if(index<=1){ //Поскольку начат отсчет 1-го элемента с единицы
- add_beg_l2l(list,p); //То если индекс <=1, значит надо просто добавить в начало элемент
- } else if(index>list->size){ //Не помню условия задания, на счет индекса, который больше размера листа
- add_end_l2l(list,p); //Поэтому решил просто добавлять его в конец листа, если указываемый индекс больше размера
- }else{
- point *q=list->beg; //Завожу новую переменную
- int i=1;
- while(i<index){
- q=q->next; //Прохожусь по всем элементам листа, пока не дойду до элемента с нужным индексом
- i++;
- }
- point *qq=q->prev; //Элемент, который перед место, куда вставлять новое значение
- qq->next=p;
- q->prev=p;
- p->next=q;
- p->prev=qq;
- list->size+=1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement