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

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

Войти
Регистрация
Восстановить пароль
 
Kronozzz
0 / 0 / 0
Регистрация: 25.10.2011
Сообщений: 17
#1

Списки С++ есть (набросок программы) - C++

19.12.2011, 01:43. Просмотров 268. Ответов 0
Метки нет (Все метки)

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

програма что наведена ниже высчитывает длину списка.


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
145
146
147
148
149
150
151
152
#include <iostream>
#include <time.h>
#include <conio.h>
#include <math.h>
#include <tchar.h>
using namespace std;
struct SList{
int data;
SList* next;
};
 
class List{
void clear (SList* p);
int count;
SList* pHead;
bool element;
public:
List();
~List();
void set(int a);
void show ();
int get_count();
void deleteElement (int, SList*);
};
List::List(){
pHead = NULL;
count = 0;
element = false;
}
List::~List(){
if (pHead != NULL)
clear(pHead);
}
 
void List::clear(SList *p){
if (p->next != NULL)
clear (p->next);
delete p;
}
 
void List::set(int a){
 
SList* temp = pHead;
 
if (a >= 0){
 
if (pHead != NULL){
 
while (temp->next != NULL && temp->next->data < a){
if (temp->data < a){
temp = temp->next;
}
}
 
if (pHead == temp && pHead->data > a){
SList* l = new SList;
l->data = temp->data;
l->next = temp->next;
temp->data = a;
temp->next = l;
}
else{
if (temp->next != NULL && temp->next->data > a){
SList* tl = temp->next;
temp->next = new SList;
temp->next->data = a;
temp->next->next = tl;
}
else{
temp->next = new SList;
temp->next->data = a;
temp->next->next = NULL;
}
}
 
}
else{
pHead = new SList;
pHead->data = a;
pHead->next = NULL;
}
cout << "set " << a << endl;
count++;
}
else{
deleteElement(abs(a), temp);
if (!element)
cout << "element " << abs(a) << " does not exist" << endl;
}
}
 
void List::deleteElement(int a, SList* p){
if (p->next->next != NULL)
deleteElement(a, p->next);
 
if (p->next->data == a){
if (p->next->next == NULL)
p->next = NULL;
else{
p->next = p->next->next;
}
element = true;
cout << "delete " << a << endl;
count--;
}
if (p == pHead && p->data == a){
pHead = p->next;
element = true;
count--;
}
}
 
void List::show(){
SList* pCurr;
pCurr = pHead;
while (pCurr != NULL){
cout << pCurr->data << " ";
pCurr = pCurr->next;
}
}
 
int List::get_count(){
return count;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
List l;
char* token;
const int max_line = 1024;
char line[max_line];
 
cout << "Entrance sequence: ";
cin.get(line, max_line);
 
token = strtok(line, " ");
while (token != NULL){
int num = atoi(token);
l.set(num);
token = strtok(NULL, " ");
}
 
cout << endl;
cout << "show: "<< endl;
l.show();
 
cout << endl;
cout << "Length of list: "<< endl;
cout << l.get_count() << endl;
getch();
return 0;
}
слышал что можно для поиска одинаковых значени метод BinarySearch (T)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 01:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Списки С++ есть (набросок программы) (C++):

Удалить из списка последний отрицательный элемент, если такой есть (линейные списки) - C++
Помогите, пожалуйста. Нужно, написать программу, которая удаляет из списка последний отрицательный элемент, если такой есть.

Работа со списками. из простой программы сделать списки - C++
Вот мое задание: Элементы массива P(n) упорядочены по не убыванию. Для введенного x: найти наименьшее k такое, что pk &lt; x &lt; pk+1 , либо...

Списки, как склеить списки между собой? - C++
Ребят, привет всем, есть код, в классе которого описаны несколько методов: добавление элемента в список, удаление и просмотр списка, дак...

Сетевая модель( есть кусок программы - C++
Сетевая модель помогите написать ее #include &lt;iostream&gt; using namespace std; int main() { int i=0; cout«&quot;Vvedite i=&quot;«endl;...

Составить Алгоритм работы программы (программа есть) - C++
Есть следующая программа Реализовать шаблон класса Stack, реализующий стек. Для представления элемента стека использовать шаблон...

Есть текст программы по C++ нужно его переделать - C++
Описать структуру с именем STUDENT, содержащую следующие поля: -фамилия и инициалы -номер группы -успеваемость (массив из пяти...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 01:43
Привет! Вот еще темы с ответами:

Есть небольшой код программы, надо отсортировать по модулям - C++
Я программировал только на Делфи(пару лет назад). Есть небольшой код программы на C++(небольшой учет товаров), не знаю как сделать из нее...

Составление программы решение простейшего уравнения. Есть ошибка - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { cout &lt;&lt; &quot;a - x = 0&quot;; double a,x; cout &lt;&lt; &quot;set...

Использование C++ кода внутри программы на C: какие есть варианты? - C++
Есть программа на C++, и в ней кое-какие нужные функции, которые хотелось бы использовать в программе на C. Переписывать заново функции с...

Есть ли программы для построения блок-схем по коду с++? - C++
есть ли программы для построения блок-схем по коду с++?


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

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

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