C++ 如何用链表创建一个破坏第n个元素的程序?

C++ 如何用链表创建一个破坏第n个元素的程序?,c++,algorithm,linked-list,C++,Algorithm,Linked List,我正在使用链表创建一个程序,该程序具有一个函数,该函数将销毁列表中的n元素,并将其编号存储在第n个元素中 我已经创建了一个程序来创建一个链表,但是我找不到搜索第n个元素的方法 struct elem { int value; elem* next; }; int main() { elem* start = NULL, *last; int a[4] = {1, 2, 3, 4}; /// creating for(int i = 0; i &l

我正在使用链表创建一个程序,该程序具有一个函数,该函数将销毁列表中的n元素,并将其编号存储在第n个元素中

我已经创建了一个程序来创建一个链表,但是我找不到搜索第n个元素的方法


struct elem {
    int value;
    elem* next;
};
int main() {
    elem* start = NULL, *last;
    int a[4] = {1, 2, 3, 4};
    /// creating
    for(int i = 0; i < 4; i++) {
        elem* p = new elem; /// s1
        p->value = a[i]; /// s2
        p->next = NULL; /// s3
        if(start == NULL) start = p; /// s4a
        else last->next = p; /// s4b
        last = p; /// s5
    }
    /// printing
    elem* p = start;
    while (p) {
        cout << p->value << " ";
        p=p->next;
    }
    /// deleting
    p = start; /// 1
    while (p) {
        start = p->next; /// 2
        delete p; /// 3
        p = start; /// 4
    }
}

结构元素{
int值;
elem*下一步;
};
int main(){
elem*start=NULL,*last;
inta[4]={1,2,3,4};
///创造
对于(int i=0;i<4;i++){
元素*p=新元素;///s1
p->value=a[i];///s2
p->next=NULL;///s3
如果(start==NULL)start=p;///s4a
else last->next=p;///s4b
last=p;///s5
}
///印刷品
elem*p=开始;
while(p){
其次是价值观;
}
///删除
p=start;///1
while(p){
开始=p->next;///2
删除p;///3
p=开始;///4
}
}

我能在这里得到一些帮助吗?真的很挣扎与链表,提前感谢

首先,需要通过args[]将“n”的值传递给main()函数

然后,添加一个while循环,就像打印一样,每次遍历链表元素时递增索引,并检查index==n,获取元素值,然后通过调用delete函数删除该元素

最好将打印/删除部分作为单独的函数,然后通过main()调用这些函数。您可以为从args[]获得的参数添加一些检查条件