Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 162
#1

Удаление элемента списка и всего списка - C++

06.04.2014, 14:52. Просмотров 718. Ответов 2
Метки нет (Все метки)

Компилируется, но не работает. Что и как исправить?

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
137
138
139
140
141
142
#include <cstdlib>
#include <iostream>
#include <cstring>
#define M 5
using namespace std;
struct A
{
       char key [25];
       
};
 
struct List
{
       A a;
       List *next;
};
 
void Init (List **begin) //функция инициализации списка
{
   *begin = new List;
   A a[M];
   cout << "Введите слова: ";
   for (int i=0; i<M; i++)
     {
   
            cin >> a[i].key;
     }
   
   (*begin)->next = NULL;
   (*begin)->a=a[0]; // добавляем 1 слово
   List *end = *begin;
   for (int i=1; i<M; i++) // цикл со 2-го
   {
      end->next = new List;
      end = end->next;
      end->a = a[i];
      end->next = NULL;    
   }   
   
}
 
void Print (List*b) //функция вывода списка на экран
{
  List *print = b;
  while (print)
  {
     cout << print->a.key << " -> ";
     print = print->next;      
  }    
  cout << "NULL\n";
}
 
void AddBegin (List **begin, A&a) //добавление элемента в начало списка
{
   List *t = new List;
   t->a = a;
   t->next = *begin;
   *begin = t;      
}
 
void AddEnd (List**b, const A&a) //добавление элемента в конец списка
{
    List *p = *b;
    List *t = new List;
    t->a = a;
    t->next = NULL;
    while (1)
    {
       if (!p->next)
       {
          p->next = t;
          break;             
       }  
       p = p->next;    
    }    
}
 
 
int compare(const A &a, const A &b)
{
    return strcmp(a.key, b.key);
}
void Delete(List **begin, const A &a)
{
    List *l, *t;
    l = *begin;
    if (l = NULL)
        return;
    
    if (compare(l->a, a) == 0) {
        *begin = l->next;
        delete l;
        return;
    }
    for (; l->next; l = l->next)
        if (compare(l->next->a, a) == 0) {
            t = l->next->next;
            delete l->next;
            l->next = t;
            return;
        }
}
 
 
void Free (List **begin)
{
   if (*begin ==0) return;
   List *p = *begin;
   List *t;
   while (p)
   {
         t = p;
         p = p->next;
         delete t;
         
   }    
   *begin = NULL; 
}
int main(int argc, char *argv[])
{
    setlocale (LC_ALL, "Russian");
    A add_word, add_end, add_ins, del;
    List *begin = NULL;
    Init (&begin);
    Print (begin);
    cout << "Введите слово, которое хотите добавить в начало списка: ";
    cin >> add_word.key;
    AddBegin (&begin, add_word);
    Print (begin);
    cout << "Введите слово, которое хотите удалить: ";
    cin >> del.key;
    Delete (&begin, del);
    Print (begin);
    cout << "ведите слово, которое хотите вставить в конец списка: ";
    cin >> add_end.key;
    AddEnd (&begin, add_end);
    Print (begin);
    Free (&begin);
    Print (begin);
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 14:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление элемента списка и всего списка (C++):

Написать код программы, выполняющей растяжку списка и вставку, удаление из списка и сжатие списка - C++
Люди ПОМОГИТЕ осталось совсем мало , мне нужна помощь!!! написать код программ: 1) Написать код программы, выполняющей растяжку...

Удаление всего списка - C++
Организовать линейный список цветов: хранить название цвета и его числовой код. Упорядочивать по первой букве названия, если первые...

Реализация списка.Удаление хвостового элемента.Поиск элемента - C++
Всем привет,мое задание выглядит так : В класс List&lt;T&gt; из классной работы добавить следующие методы: void addHead(T...

Удаление элемента из списка - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; struct FileStruct //Структура файла { ...

Удаление элемента из списка - C++
Нужно удалить всех студентов с оценками 2. Entry *begin = new Entry; int mark=2; Entry *current=begin; while(current){ ...

Удаление элемента из списка - C++
Здравствуйте, нужна помощь, программа, выполняющая следующие задания на основе односвязного списка. Не удается удалить элемент по дате...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
anmartex
...
1705 / 1198 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
06.04.2014, 15:01 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
haseki, 87 строка, у вас вместо сравнения присвоение стоит.
1
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 162
06.04.2014, 15:06  [ТС] #3
anmartex, и правда, спасибо)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 15:06
Привет! Вот еще темы с ответами:

Удаление элемента из списка - C++
Здравствуйте, нужна помощь, программа, выполняющая следующие задания на основе двусвязного списка. Не удается удалить элемент по дате...

Удаление элемента из списка - C++
Нужно удалить из списка элемент, стоящий после элемента на который указывает Р. Очень срочно надо! Заранее спасибо.

Удаление элемента со списка - C++
Вот у меня есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; struct OS { char Name ; ...

Удаление элемента из списка - C++
необходимо удалить первый элемент из списка, помогите пожалуйста переписать функцию и помогите с вызовом этой функции в main() ...


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

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

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