我在C中有一个编程问题,我试图在其中设计一个List并在给定索引处添加一个元素。
这是我的insertElement方法:
ListElement* getNextElement(ListElement *listElement){
return listElement->nextElement;
}
/* Insert a given element at the specified index in a specified list. Shifts
* all other elements to the right, increasing their index by 1.
* Requires 0 <= index <= listSize(), otherwise the element should not be inserted.
*/
void insertElement(List *list, ListElement *listElement, int index) {
ListElement* tempElement = list->headElement;
int count = 0;
while (tempElement != NULL) {
if (count == index) {
}
tempElement = getNextElement(tempElement);
count++;
}
}
但是我实际上不知道如何移和插入元素。
这是我尝试插入的方法:
int main() {
ListElement* newElement = malloc(sizeof(ListElement));
insertElement(&myList, newElement, 1);
exit(EXIT_SUCCESS);
}
有人可以帮我吗?提前致谢。
最佳答案
链表的优点在于,与数组不同,您无需移动或移动任何内容即可进行插入。
假设您的列表是A->C
,并且您想在B
之后插入A
以给出A->B->C
。A->nextElement
设置为C
;需要改变。B->nextElement
未设置;需要改变。
您应该能够看到如何使用给出的内容完成该任务。