Как создать программу со связанным списком, которая уничтожает n-й элемент? - PullRequest
0 голосов
/ 01 апреля 2019

Я создаю программу со связанным списком, в которой есть функция, которая уничтожает элемент nth списка и вместо этого помещает элемент, номер которого хранится в элементе nth.

Iсоздал программу, которая создает связанный список , но я не могу найти способ, который ищет элемент nth .


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
    }
}

Могу ли я получить некоторыепомогите пожалуйста?Действительно борюсь со связанным списком, заранее спасибо!

1 Ответ

0 голосов
/ 01 апреля 2019

сначала вам нужно передать значение "n" в функцию main () через args []

затем добавьте цикл while, как и печать, увеличивайте индекс каждый раз, когда вы проходите через элементы связанного списка, и проверяйте, равен ли index == n, получите значение элемента, затем удалите этот элемент, вызвав функцию delete.

лучше поместить свою часть печати / удаления как отдельные функции, а затем вызывать эти функции через main (). и вы можете добавить некоторые условия проверки того, какие параметры вы получили из аргументов []

...