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

Добавление элемента в список с проверкой уникальности - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ссылка на двумерный массив http://www.cyberforum.ru/cpp-beginners/thread1097228.html
Здравствуйте. Объясните досконально это выражение: int (&ref1);
C++ Логарифмы и не объявленные идентификаторы - найти ошибку в коде #include <iostream> #include <conio.h> #include <math.h> void main() { float x,y; // объявление переменных http://www.cyberforum.ru/cpp-beginners/thread1097219.html
Установка wxWidgets3.0 в Code Blocks C++
Привет, помогите пожалуйста установить wxWidgets3.0 в Code Blocks, а то сил уже никаких нету( как его туда запихать ?
Посимвольно считать текст из файла и распределить сколько каких символов в тексте C++
Решал задачу. Суть в том, что нужно взять текст из .txt файла. посимвольно считать и распределить сколько каких символов в тексте(по таблице ascii, но столкнулся с проблемкой: объявил два массива(один просто последовательный набор чисел 1...255, а второй массив счетчик символов). проблема в том, что при заполнении первого массива первый символ второго массива такой же как и последний первого) а...
C++ Стеки и очередь http://www.cyberforum.ru/cpp-beginners/thread1097161.html
Объясните пожалуйста что такое стек и очередь.И не могли вы написать программу с объяснением,где допустим задается стек из 10 элементов в цикле и с выводом,также и с очередью.Я как понял в стеке должно на экран вывести 9876543210.
C++ Линковка wxWidgets3.0 в Code Blocks Привет, как правильно установить wxWidgets3.0 для Code Blocks ? я скачал файл, wxPack_v3.0.00.03.exe, установил wxWidgets3.0 по пути: D:\Proga\wxWidgets3.0 В Code Blocks когда я выбрал проект с wxWidgets я указал путь к wxWidgets Но при компиляции проекта мне видает ошибку линковки: ||=== Build: Release in Binder (compiler: GNU GCC Compiler) ===| ld.exe||cannot find -lwxmsw30u_core|... подробнее

Показать сообщение отдельно
Yark0s
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 37
15.02.2014, 17:22  [ТС]     Добавление элемента в список с проверкой уникальности
А как можно удалить к примеру элемент "7" со списка?
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
143
144
//---------------------------------------------------------------------------
#include <clx.h>
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
struct Element
{
   char data;
   Element * Next;
};
// Односвязный список
class List
{
   Element * Head;
   Element * Tail;
   int Count;
 
public:
   List();
   ~List();
   // Добавление элемента в список
   // (Новый элемент становится последним)
   void Add(char data);
   // Удаление элемента списка
   // (Удаляется головной элемент)
   void bound(char data);
   void Del();
   // Удаление всего списка
   void DelAll();
   // Распечатка содержимого списка
   // (Распечатка начинается с головного элемента)
   void Print();
   // Получение количества элементов, находящихся в списке
   int GetCount();
};
 
List::List()
{
   // Изначально список пуст
   Head = Tail = NULL;
   Count = 0;
}
 
List::~List()
{
   DelAll();
}
 
int List::GetCount()
{
   return Count;
}
void List::bound(char data)
{
    Element *temp = new Element;
    temp->data = data;
    Tail = Head;
    if (Head != NULL)
    {
        while (Tail != NULL)
        {
            if (Tail->data == temp->data)
                break;
            else if (Tail->data < temp->data && Tail->Next == NULL)
            {
                Tail->Next = temp;
                break;
            }
            else if (Tail->data < temp->data && Tail->Next->data > temp->data)
            {
                temp->Next = Tail->Next;
                Tail->Next = temp;
                break;
            }
            Tail = Tail->Next;
        }
    }
    else
        Head = Tail = temp;
}
 
void List::Add(char data)
{   // создание нового элемента
   Element * temp = new Element;
   // заполнение данными
   temp->data = data;
   // следующий элемент отсутствует
   temp->Next = NULL;
   // новый элемент становится последним элементом списка
   // если он не первый добавленный
   if(Head!=NULL){
 Tail->Next=temp;
 Tail = temp;
   }
   else{
   Head=Tail=temp;
   }
}
 
void List::Del()
{
   Element * temp = Head;
   Head = Head->Next;
   delete temp;
}
 
void List::DelAll()
{
   while(Head != 0)
      Del();
}
 
void List::Print()
{
   Element * temp = Head;
   while(temp != 0)
   {
      cout << temp->data << " ";
      temp = temp->Next;
   }
   cout << "\n\n";
}
void main()
{  char q;
   // Создаем объект класса List
   List lst;
   char s[] = "12469\n";
   cout << s << "\n\n";
   int len = strlen(s);
   for(int i = 0; i < len; i++)
     lst.Add(s[i]);
   lst.Print();
   scanf("%c",&q); printf("\n");
   lst.bound(q);
    lst.Print();
//   lst.Del();
//    lst.Print();
   getch();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru