Я работаю над проектом по редактированию кадров, который связан с созданием коротких фильмов в формате GIF. Я хочу добавить функцию для изменения положения выбранных кадров. Например, если я хочу переместить фрейм с именем «3» в первую позицию:
до:
1->2->3->4->5->6->NULL
после:
3->1->2->4->5->6->NULL
Эта вещь работает для меня, когда я выбираю позиции в середине или в конце списка, но не работает при вводе позиции 1. Моя функция:
void insertFrameNode(FrameNode** list, FrameNode* addNode, int pos)
{
int i = 0; // for loops
FrameNode* before = *list;
FrameNode* head = *list;
if (pos == 1)
{
addNode->next = head;
*list = addNode;
}
else
{
for (i = 0; i < pos - 2; i++)
{
before = before->next;
}
addNode->next = before->next;
before->next = addNode;
}
}
Любая помощь будет очень принята. Спасибо!