1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Помогите разобраться с заданием пожалуйста. Вот по этому адресу (адрес указан в приложенном файле) лежит задание для нас. Там правда сказано на С++ без ООП, но преподаватель сказал, что на НАМ нужно на чистом Си. В файле на сайте все написанное и приведены три задания: двусвязный линейный список, ассоциативный массив и динамический массив. В Листинге который я выложу дальше я по идеи реализовал первое задание - линейный список - очень прошу специалистов посмотреть и высказать замечания, где может не правильно, где недодумано, где ещё чего. Вторая просьба - это пояснить, как основываясь на интерфейсе списков сделать динамический массив (это всё в здании написано просто коротко напоминаю) и что из себя таки представляет этот ассоциативный массив в примитивной реализации... не прошу написать, прошу объяснить как на основе сделанного прийти ко всему остальному. С уважением
Вот, я сделал ещё динамический массив... посмотрите пожалуйста....
И ещё одна такая прозьба. Пример которы я скинул по двусвязанному списку - почему то не работает, функции вызываю старнные ошибки при выходе которых компилятор показывает мне исходники каких то хейдеров и т.п... в чем может быть причина...
#ifndef CONTAINER_H #define CONTAINER_H
// #define ARRAY #define LIST
typedef void(*cont_handle)(void* data);
// Создает пустой контейнер !!!*** void* cont_allocate(); // Удаляет контейнер!!!*** void cont_release(void* cont); // Добавляет элемент в конец контейнера !!!*** void cont_add(void* cont, void* data); // Вставляет злемент в позицию pos !!!*** void cont_insert(void* cont, int pos, void* data); // Возвращает размер контейнера !!!*** int cont_size(void* cont); // Возвращает данные в позиции pos !!!*** void* cont_get(void* cont, int pos); // Заменяет данные в позиции pos. Возвращает старые данные.!!!*** void* cont_replace(void* cont, int pos, void* data); // Удаляет данные из позиции pos. Возвращает удаленные данные. void* cont_remove(void* cont, int pos); // Перебирает все элементы контейнера по порядку. !!!*** void cont_foreach(void* cont/*, cont_handle proc*/); // Перебирает все элементы контейнера в обратном порядке.!!!*** void cont_foreach_reverse(void* cont, cont_handle proc);
#endif
#ifndef ARRAYLIST_H #define AARAYLIST_H
typedef struct ArrayListt{ void** data; int count_size; } AR;
void cont_insert(void* cont, int pos, void* data) { AR *vrem_cont_array; void **vrem_mass; int count_one = 0; int count_two = 0; int count_three = 0; int mass_size = 0;
void* cont_remove(void* cont, int pos) { AR *vrem_cont_array; void* vrem_data; void** vrem_mass; int count_one = 0; int count_two = 0; int count_three = 0; int vrem = 0; int mass_size = 0;