Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502

Линейный поиск с барьером в массиве структур (С++)

30.09.2013, 20:18. Показов 5233. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Помогите , пожалуйста , разобраться с поиском .
Вот я создаю структуру :
C++
1
2
3
4
5
6
7
struct D    //описываемая струтура
{
    int m;
    int y;
    int d;
        int find;  //элемент , который записывается в массив структур пользователем как ключ
};
Дальше в главной функции :
C++
1
2
3
4
5
6
7
8
9
10
11
int N;   //создаём массив структур из N элементов
Data *ob1;  //указатель на структуру 
cout<<"\n Enter N:";
cin>>N;
ob1=new Data[N];  //выделение памяти под массив структур
Get(ob1,N);          //функция ввода данных массива структур 
Show(ob1,N);       //функция вывода на экран
int key;  //ключ
cout<<"Enter key:";
cin>>key;           //ввод ключа
delete[]ob1;      //освобождение памяти
Мне нужно организовать линейный поиск с барьером . Как я понимаю , то для этого нужно значения ключа(искомый элемент ) записать вконец массива структур , то есть в любом случае элемент будет в массиве структур , но как бы "искусственный , об этом оповещаем пользователю .

Я совсем не могу понять , как обращаться с массивом структур .
Пусть я создаю функцию поиска :
C++
1
2
3
4
int P(Data *ob1,int key,int N)   //передаю структуру, ключ, количество элементов в структуре
{  
 
}
Я не могу понять , как быть дальше . По идеи , нужно присвоить последнее поле массива структур(int find) ключу(key). А потом сравнивать : если элемент массива структур int find == ключу , то вернуть -1 , как знак того , что элемент такой не найден (найден только тот , что пользователь сам записал в структуру) .
Но у меня никак не получается это сделать(
Я так понимаю , что нужно key==ob1.[find] //прировнять вводимый ключ к полю массива структур

А что дальше делать ?
Помогите , пожалуйста , разобраться .
Если не с барьером , то хотя бы на примере простого линейного поиска , чтобы понять как хоть обходится с этими массивами структур .

Заранее огромное СПАСИБО за помощь !
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2013, 20:18
Ответы с готовыми решениями:

Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу
Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу. Не могу понять почему ругается на поиск с барьером....

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

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

2
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
30.09.2013, 20:45
может так?

C++
1
2
3
4
5
6
7
8
int P(Data *ob1,int key,int N)   //передаю структуру, ключ, количество элементов в структуре
{  
    for (int i=0; i<N; i++)
        if (obj[i].find == key)
            return i;
            
    return -1;  // не нашли
}
0
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
30.09.2013, 21:27  [ТС]
Цитата Сообщение от _ Посмотреть сообщение
может так?

C++
1
2
3
4
5
6
7
8
int P(Data *ob1,int key,int N)   //передаю структуру, ключ, количество элементов в структуре
{  
    for (int i=0; i<N; i++)
        if (obj[i].find == key)
            return i;
            
    return -1;  // не нашли
}
Так тоже неправильно . Нужно возвращать i , если элемент просто есть в списке , а если obj[i].find == key , то это уже -1.

Проблема в том , что я не могу понять ,как работать с ключом .
Вводим то мы по 3 элемента , а ключ записываем вообще в 4-ый . Получается , что мы его вообще найти не можем ?
И ещё , я не пойму , в какой именно элемент массива структур нужно вписывать ключ? key=ob1.[?].find

Совсем запутался уже(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2013, 21:27
Помогаю со студенческими работами здесь

Линейный поиск или поиск с барьером
Помогите с задачей, пожалуйста. Найти номер первого элемента массива, который больше количества отрицательных элементов. Только без...

Линейный поиск в массиве
Дан массив размером в n элементов, необходимо в массиве найти символ, который задаст юзер. Я запилил поиск для чисел, а вот как для буковок...

Линейный поиск в массиве
Подскажите пожалуйста ,что нужно сделать для реализации линейного поиска в данном массиве? Буду очень признателен. #include...

Линейный поиск в массиве
Адекватно не работает линейный поиск, при вводе любого элемента, кроме первого, выводит результат как на картинке. В чем проблема? ...

Линейный поиск в массиве
ребята, направьте на путь истинный, что не так делаю... не работает этот код, находит мусор. void main () { SetConsoleOutputCP...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru