-11 / 1 / 0
Регистрация: 21.11.2012
Сообщений: 215
1

Написать функцию удаления элемента из списка

12.11.2015, 21:59. Показов 3767. Ответов 2
Метки нет (Все метки)

Надо написать функцию Void del (int value) , которая удаляет элемент в списке и Elem *searth (int value) , что в списке ищет первый элемент с value значение и возвращает указатель на него . В неудачном случае возвращает значение NULL .

надо просто сделать это чудо в одну программу и проверить правильно ли тут все умным глазом )




удаление как я понял будет :
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void del(int value)
{
    Elem *current = head;
    if (!current) return;
    if (current->value == value)
    {
        head = current->next;
        delete current;
    }
    else
    {
        Elem *prev = current;
        current = current->next;
        while (current && current->value != value)
        {
            prev = current;
            current = current->next;
        }
        
        if (current)
            prev->next = current->next;
        delete current;
    }
}
и поиск
C++ (Qt)
1
2
3
4
5
6
7
Elem *search(int value)
{
    Elem *current = head;
    while (current && current->value != value)
        current = current->next;
    return current;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2015, 21:59
Ответы с готовыми решениями:

Поправить функцию удаления последнего элемента односвязного списка
#include "stdafx.h" #include <iostream> #include <stdlib.h> using namespace std; struct...

Написать функцию удаления четных элементов двусвязного списка
я тут что-то набросал, но это бред похоже.подправьте или переправьте :umbrage: кому не сложно....

Написать функцию полного удаления списка на основе связного хранения
Помогите составить такую функцию! Добавлено через 14 минут *связного

Написать функцию удаления выбранного элемента одномерного массива
необходимы функции: -удаления выбранного элемента одномерного массива -добавления К элементов в...

2
-11 / 1 / 0
Регистрация: 21.11.2012
Сообщений: 215
15.11.2015, 20:47  [ТС] 2
ребят помогите
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
15.11.2015, 22:21 3
Лучший ответ Сообщение было отмечено orakul77 как решение

Решение

orakul77,
Не знаю может это не то, но вот удаление элемента односвязного списка. Если надо чего другое, уточните условие
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<iostream>
using namespace std;
struct A
{
    int value;
};
struct List
{
    A a;
    List *next;
};
 
void Create(List**ptr)
{
    *ptr = new List;    
    A a[9] = { 10,20,30,40,50,60,70,80,90};
    (*ptr)->a = a[0];
    (*ptr)->next = NULL;
    List*end = *ptr;
    for (int i(1); i < 9; i++)
    {
        end->next = new List;
        end = end->next;
        end->a = a[i];      
        end->next = NULL;
 
    }
}
void Print(List*ptr)
{
    List*print = ptr;
    while (print)
    {
        cout << print->a.value << "->";
        print = print->next;
    }
    cout << "NULL" << endl;
 
}
void Del(List**begin,int val)
{
    List*t = *begin;
    if (t->a.value == val)
    {
        *begin = t->next;
        delete t;
        return;
    }
    List*t1 = t->next;
    while (t1)
    {
        if (t1->a.value == val)
        {
            t->next = t1->next; 
            return;
        }
        t = t->next;
        t1 = t1->next;
        
    }
    cout << "NO match" << endl;
    return;
 
 
}
int main() {
    List*begin = NULL;
    Create(&begin);
    Print(begin);
    int val = 0;
    cin >> val;
    Del(&begin, val);
    Print(begin);
    return 0;
}
Добавлено через 9 минут
и безусловно
C++
1
delete &t1->a.value;
иначе предвидится утечечка
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2015, 22:21
Помогаю со студенческими работами здесь

Написать процедуру удаления из заданного списка, все вхождения элемента с заданным значением
Написать программу, процедуру удаления из заданного списка, все вхождения элемента с заданным...

Написать функцию стирания элемента двусвязного списка
Ребята помогите , завтра надо принести преподу = но я честно незнаю как правильно все сделать и...

Написать функцию, меняющую местами два элемента однонаправленного списка
Написать функцию, меняющую местами два элемента однонаправленного списка без обращения к полю...

Написать функцию поиска минимального элемента списка по одному из выбранных полей
FindMin – функция поиска минимального элемента списка по одному из выбранных полей. написать ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru