Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 28.02.2016
Сообщений: 198
1

Однонаправленный связанный список, добавить удаление элемента

30.03.2018, 12:21. Просмотров 457. Ответов 1
Метки нет (Все метки)

Помогите составить метод удаление элемента, если можно, то что его вводить с клавиатуры, уже всю голов сломал


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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// L2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
//стуктура, описывающая узел связанного списка
struct Node
{
    string data; //данные, содержащиеся в узле
    Node *next; //указатель на следующую структуру
    Node *last; //указатель на предыдущую структуру
    
};
 
 
 
//класс, описывающих объект "связанный список"
class List
{
private:
    Node * head; //"голова" связанного списка
    Node * temp;
    
 
public:
    List() //конструктор класса без параметров
    {
        head = NULL; //первого элемента пока нет
    }
 
    //метод, добавляющий новый узел в список
    void addNode(string d)
    {
 
        Node *nd = new Node; //динамически создаем новый узел
        
 
        nd->data = d;        //задаем узлу данные
        nd->next = NULL;     //новый узел в конце, поэтому NULL
        nd->last = NULL;
 
        if (head == NULL)     //если создаем первый узел
        {   
            
            head = nd;      
            
        }
        else                 //если узел уже не первый
        {
            
            Node *current = head;
 
            
 
            
 
            //ищем в цикле предшествующий последнему узел
            while (current->next != NULL)
                current = current->next;
                
 
            //предшествующий указывает на последний
            current->next = nd;
            temp = nd;
        }
        
    }
 
    void SearchList(string kd)
    {
        Node *current = head;
        while (current != NULL)
            if (current->data == kd)
            {
                cout << "Nauden" << endl;
                cout << current->data << endl;
                break;
            }
            else
            {
                current = current->next;
            }
        cout << "No" << endl;
    }
 
    
 
    //метод, выводящий связанный список на экран
    void printList()
    {
        Node *current = head;
        
        while (current != NULL)
        {
            cout << current->data << endl;
            
            current = current->next;
 
        }
    }
};
 
 
 
int main()
{
    List myList;
    
 
    myList.addNode("qwerty");
    myList.addNode("asdfg");
    myList.addNode("zxcvb");
    myList.printList();
    //string a;
    //cin >> a;
    //myList.SearchList(a);
    
    
    cout << endl;
    
    myList.printList();
    
    
    
 
    
    
 
    //return 0;
    system("pause");
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2018, 12:21
Ответы с готовыми решениями:

Добавить в список элемент после элемента с заданным инф.полем [Однонаправленный список]
Вообщем есть: Функция создание списка Функции вывода на экран Функция добавление элемента с...

Однонаправленный список. Удаление элемента с конца
Необходимо сделать программу, которая будет выполнять следующие задачи с однонаправленным списком:...

Однонаправленный связанный список
вот задание Однонаправленный связанный список Тип информационной части узла списка-char 1. ...

Добавить в однонаправленный список элемент после элемента с заданным информационным полем
Здравствуйте, помогите пожалуйста, с задачей. 1.Тип информационного поля char*. Добавить в ...

1
469 / 422 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.03.2018, 13:03 2
Удаление элемента из списка по его индексу
Вот пример. Подделай под свой список.

Здесь: delElement(Element *&R, int k)
R - голова списка
k - индекс элемента, который нужно удалить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2018, 13:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Линейный однонаправленный список: удаление элемента перед первым положительным элементом
Есть функции для ввода и вывода списка, освобождения памяти. Проблема с функцией для удаления...

Линейный, однонаправленный, связанный список для структур
Всем привет! Помогите пожалуйста переделать эту программу, так чтобы в нем использовались не...

Однонаправленный связанный список (Вставить новый узел с нулевым значением перед первым отрицательным элементом...)
Помогите выполнить задание: Тип информационной части узла списка - INT Вид списка -...

Добавить элементы в связанный список в порядке его сортировки
Хэлп! Вот условие: Напишите программу, которая добавляет элементы в связанный список в порядке его...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.