Форум программистов, компьютерный форум, киберфорум
Наши страницы

База данных на основе двусвязного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача о рюкзаке (тема: генерация всех подмножеств n по k) кому надо http://www.cyberforum.ru/cpp-beginners/thread978764.html
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <math.h> using namespace std; void main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int *M =...
C++ Присвоить NULL массиву Здравствуйте! Есть код: matrix(); clear(); В классе matrix объявлен указатель unsigned char* data;. В конструкторе matrix() есть строка data = NULL; Когда захожу в функцию clear, data... http://www.cyberforum.ru/cpp-beginners/thread978733.html
Программа работы со стеком подскажите пожалуйста C++
Для решения задачи использовать стандартный тип "стек", определённый в библиотеке STL. Исходные данные можно получить как вводом с клавиатуры, так и генератором случайных чисел. (2 задача) СТЕКИ ...
C++ Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n
Даны два упорядоченных набора чисел C1, C2, ..., Cn и D1, D2, ..., Dm. Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n. Не могу понять Число сравнений не...
C++ Дано натуральное число n. Вычислить: http://www.cyberforum.ru/cpp-beginners/thread978689.html
помогите написать на С++ Дано натуральное число n. Вычислить: 1*2+2*3*4+3*4*5*6+...+n(n+1)...2n
C++ Программа работы с очередью подскажите пожалуйста Для решения задачи использовать стандартный тип "очередь", определённый в библиотеке STL. Исходные данные можно получить как вводом с клавиатуры, так и генератором случайных чисел. (1 задача)... подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.11.2013, 08:54
Вообще, для решения таких задач и были придуманы шаблонные типы. Если вам кровь-из-носу надо велосипедить, то руками это повторить нетрудно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <class T>
class LinkedList {
 public:
  void add(const T &value) {
    // код добавления ...
  }
  void erase(const T &value) {
    // код удаления ...
  }
};
 
...
// ну и при создании объекта связного списка специфицируете шаблонный параметр своей структурой:
LinkedList<Auto> autoList;
Auto a;
autoList.add(a);
...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct Auto
{
    char Name[25];
    char Brand[25];
    char Color[15];
    char Country[20];
    int Price;
    bool Availability;
    int d;
    Auto *next;
    Auto *prev;
    Auto():next(NULL),prev(NULL), d(-332215){}
    Auto(Auto* ptr_n, Auto *ptr_p , int *data): next(ptr_n),prev(ptr_p), d(data) {}
};
В принципе, можно и так сделать. Связный список структур, которые сами хранят указатель на следующий и предыдущий объект называется "неинтрузивным связным списком" и такой список сам не создает никаких объектов в памяти, чем очень привлекателен.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru