Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2014, 15:51   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Надеюсь, модераторы разберутся, как объединить все темы
Код:
list *k = calloc(1, sizeof(list));
...
if (!heads[lngth])
    heads[lngth] = k;
else {
    list *tmp = heads[lngth];
    while (tmp->next)
        tmp = tmp->next;
    tmp->next = k;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 21.05.2014, 20:25   #12
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Вот ещё.
Фу-я удаления записи.
Если под 1 кеем несколько велъю, то предлагает ввести номер велъю, какой юзер хочет удалить.
Но что-то он вылетает.
Код:
case 'C':
				{
					f_show(k);// Showing the values with key - k;
					printf(" Enter the number of the value you want to delete.\n >>");
					scanf("%d",&k1);
					for (int i=0;i<k1;i++) heads[k1]=heads[k1]->next;
					a=heads[k1]; 
					heads[k1]=a->next; 
					free(a);
					printf(" The value is successfully deleted.\n");
					return 0;
					break;
				}
Спасибо.
guroDragon вне форума Ответить с цитированием
Старый 21.05.2014, 21:10   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Нельзя так менять heads[k1]. Из-за этого, список "теряется".
Удаление p-го элемента, нумерация с 0:
Код:
if (p < 0)
    printf("Номер неверен\n");
else if (p == 0) {
    list *tmp = heads[k];
    heads[k] = heads[k]->next;
    free(tmp);
    printf("Элемент удален\n");
} else {
    list *tmp = heads[k];
    --p;
    while (p && tmp) {
        tmp = tmp->next;
        --p;
    }
    if (p || !tmp || !tmp->next)
        printf("Такого элемента нет\n");
    else {
        list *a = tmp->next;
        tmp->next = tmp->next->next;
        free(a);
        printf("Элемент удален\n");
    }
}
Не проверял.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хэш таблица guroDragon Помощь студентам 2 19.05.2014 21:28
хэш таблица R0807D06 Общие вопросы C/C++ 1 13.08.2013 15:51
Хэш-таблица. Метод цепочек. C++ Playa-RC Помощь студентам 0 10.03.2012 15:07
хэш-таблица с открытой адресацией Olya13254 Помощь студентам 0 04.01.2011 17:27