![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 21.12.2010
Сообщений: 5
|
![]()
Здраствуйте форумчане, помогите пож, необходимо проверить есть ли в списке с одинаковым значением.
програма что наведена ниже высчитывает длину списка. [CPP]#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: ![]() 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; } [/CPP] слышал что можно для поиска одинаковых значени метод BinarySearch (T) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Есть ли скрипт партнёрской программы которая | morekaifa | Софт | 0 | 02.04.2011 17:10 |
Есть проблемка с отладкой программы | warder | Общие вопросы C/C++ | 9 | 25.05.2010 23:02 |
есть такие программы ? | Iluhin | Безопасность, Шифрование | 14 | 01.04.2010 22:28 |
Код есть программы нет! | Serco | Помощь студентам | 4 | 10.03.2010 21:27 |
Есть код программы на с++. Нужно обьяснение | Alex1991 | Помощь студентам | 1 | 16.03.2009 14:37 |