Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
OverDrive1g
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 8
#1

Что лучше для хранения БД в динамической памяти "Связный список" или же просто в массиве? - C++

20.10.2015, 22:34. Просмотров 336. Ответов 7
Метки нет (Все метки)

Всем доброго времени суток!
Получил тему курсовой, попалась тема база данных на файле. Не долго думая как хранить все данные в динамической памяти, сделал массив из структур. Но уже потом при реализации "удаление и добавление записей" столкнулся с небольшой проблемой, это быстродействие. Все же при добавлении по 1 записи придется создавать промежуточный массив, чтобы увеличить исходный массив на 1, тоже самое при удалении.
Меня это не устроило, но добрые люди подсказали что "используй связанные списки".
Вопрос! Что по вашему мнению будет оптимальнее для хранения записей в динамической памяти, Связанный список, или же массив?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2015, 22:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Что лучше для хранения БД в динамической памяти "Связный список" или же просто в массиве? (C++):

Реализовать односвязный список для хранения и операций с данными вида "Количество внешних связей"
Реализовать односвязный список для хранения и операций с данными вида: Объект...

что значит "поставить контроль памяти"? (в динамическом массиве)
подскажите, пожалуйста. программа работает, но не совсем понял чего требует.

Бинарное дерево (связный список "сыновей")
Здравствуйте, помогите, пожалуйста, с программой.Нужно реализовать бинарное...

Задачу "Мышка и зернышки" решить с использованием динамической памяти
Здравствуйте. Такая задача была уже описана ранее. Вот только хочу ее решить с...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов),...

Реализовать условие "больше или равно", "меньше или равно" для простых дробей в классе
как реализовать условие больше или равно, меньше или равно для простых дробей в...

7
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
20.10.2015, 22:49 #2
Цитата Сообщение от OverDrive1g Посмотреть сообщение
оптимальнее
Оптимальность - это булевская переменная. Либо есть, либо нет.

Вопрос "что лучше?" требует указания критерия оптимизации.

Недолго думая
А зря. С базами данных думать надо долго, пробовать, замерять и переделывать.

Предположим, вам задана реляционная база. Первый вопрос - хранить по строкам или по столбцам?

И.т.д.

Вставлять быстрее в список, а искать - в массиве. Сортировка - отдельная проблема. Большая база в памяти не поместится. Если поиск требуется более, чем по единственному полю, скорее всего нужны дополнительные индексные файлы.

Так что, пока нет точных требований, посоветовать нечего.
0
OverDrive1g
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 8
20.10.2015, 22:59  [ТС] #3
Вставлять быстрее в список, а искать - в массиве. Сортировка - отдельная проблема. Большая база в памяти не поместится. Если поиск требуется более, чем по единственному полю, скорее всего нужны дополнительные индексные файлы.
Кликните здесь для просмотра всего текста
1.ввод информации о сотрудниках и запись ее на диск
2.удаление ненужной информации с файлов на диске
3.корректирование записей базы данных
4.вывод расчетной ведомости для каждого подразделения
5.расчет суммы выплаты заработной платы по институту в целом

Исходя из Вами сказанного и моего задания мне больше подходит список, так никакого поиска и сортировки нет.
0
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
20.10.2015, 23:46 #4
Цитата Сообщение от OverDrive1g Посмотреть сообщение
никакого поиска и сортировки нет
"Динамической памяти" тоже. Советую уточнить задание - IMHO, от вас ожидается именно работа с дисковыми файлами (Insert / Remove / Update).
0
Dmitriy_M
1412 / 1295 / 126
Регистрация: 20.03.2009
Сообщений: 4,617
Записей в блоге: 11
21.10.2015, 10:55 #5
Цитата Сообщение от OverDrive1g Посмотреть сообщение
Связанный список, или же массив?
Дерево!
0
Почтальон
Модератор
584 / 522 / 106
Регистрация: 22.03.2015
Сообщений: 3,630
Завершенные тесты: 1
21.10.2015, 11:57 #6
Цитата Сообщение от OverDrive1g Посмотреть сообщение
Исходя из Вами сказанного и моего задания мне больше подходит список, так никакого поиска и сортировки нет.
На форуме встречал уже эту задачу, потрудитесь поискать
0
egorthik
20 / 20 / 8
Регистрация: 15.10.2015
Сообщений: 82
24.10.2015, 10:18 #7
Конечно, мне далеко до вашего уровня Но не проще ли сделать вектор структур ( полная оптимизация по памяти будет)
0
Почтальон
Модератор
584 / 522 / 106
Регистрация: 22.03.2015
Сообщений: 3,630
Завершенные тесты: 1
24.10.2015, 13:40 #8
Все когда-то были "зелеными"
Если смотреть с точки зрения маленькой БД - массив - самое то, т.к. проще сортировать, искать и т.п. но он будет фиксированный, т.е. с ограничением количества записей (что для БД не совсем корректно). Если вам такое условие не подходит, то создавайте динамический список
0
24.10.2015, 13:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2015, 13:40
Привет! Вот еще темы с решениями:

Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация")
Вывести из структуры информацию о человеке, чья фамилия введена с клавиатуры ...

В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию
в массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить...

Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет"
void check_same(const int* a) { for (const int* p = a; p < a + 9; p++) ...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить...


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

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

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