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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2011, 17:26   #1
Stiker
 
Регистрация: 09.12.2007
Сообщений: 8
По умолчанию Добавление в список, С++

Помогите пожалуйста!

Задание следующее:
Написать программу для работы с просматриваемой таблицей. Таблица организованная списком, каждый эл-т списка имеет списка имеет следующую структуру

Код:
Struct Item{
int key; //ключ элемента
int release; //номер версии элемента
char *info; //указатель на информация
item *next; //укажите на след элемент 
}
Необходимо реализовать возможность включение нового элемента в таблицу при условии, что в таблице могут находиться несколько элементов с одинаковыми с одинаковыми ключами и разными версий.

У меня есть добавление элемента в конец списка

Код:
Node *AddSpis(Node *p, Node *b)			// Функция добавления списка
{
	Item *w;		// Помогающие указатели
	Item *ww;		// Помогающие указатели
	int key = 0, release =  0;
	char *str = new char(255);
	if (p == NULL){				// Если списка еще нету
		p = new Node;
		w = new Item;
		p->info = w;
	}
	else { p->link = new Node;	// Иначе он уже существует
		 p = p->link;
		 w = new Item;
		 p->info = w;
	}
	w->string = new char(255);
	cout << "Vvedite - Key and String ne bolee 255 simvolov): \n";
	cin >> key;
    cin.clear();	// очищение буфера
	cin.sync();		// удаление сохранившегося нажатия ENTER
	cin.getline(str,255);		// Вводим значения для таблицы. 100 количество символов
	p->link = NULL;
	w->next = NULL;

	if (b != NULL)	// Если список уже существует
	while ( b != NULL) {		// В цикле мы проходим список и проверяем есть ли там key и release
		if (key == b->key)		// Если есть то мы находим самое большое значение release и запоминаем его
		{
			ww = b->info;
			if(release < ww->release)
			{
				release = ww->release;
			}
		}
		b = b->link;
	}
	release++;					// Увеличивает на единицу
	w->release = release;		// И записываем результат
	p->key = key;
	w->string = str;
	return p;
}
Необходимо, чтобы элементы добавлялись не в конец, а в начало списка
Stiker вне форума Ответить с цитированием
Старый 28.05.2011, 19:58   #2
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

Передавай в качестве параметра голову списка, в функции выделяй память для нового элемента, присваивай полю link голову списка, записывай в новый элемент данные и присваивай голове адрес этого элемента

Последний раз редактировалось _Alerter_; 28.05.2011 в 21:36.
_Alerter_ вне форума Ответить с цитированием
Старый 28.05.2011, 20:42   #3
Stiker
 
Регистрация: 09.12.2007
Сообщений: 8
По умолчанию

Цитата:
Сообщение от _Alerter_ Посмотреть сообщение
Передавай в качестве параметра голову списка, в функции выделяй память для нового элемента, присваивай полю link голову списка, записывай в новый элемент данные данные и присваивай голове адрес этого элемента
А как это по коду будет выглядеть?) Чета я туплю
Stiker вне форума Ответить с цитированием
Старый 28.05.2011, 21:36   #4
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

Пример функции добавления элемента Item в список:
Код:
Item * Insert(Item * h)
{
	char * s = new char[255];
	cin >> s;
	Item * p = new Item;
	p->info = s;
	if (h)
	{
		p->next = h;
		h = p;
	}
	else
	{
		h = p;
		h->next = NULL;
	}
	return h;
}
Пример вызова функции:
Код:
Item * head;
head = Insert(head);
_Alerter_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление элемента в кольцевой список ForzaJuve Общие вопросы C/C++ 1 09.11.2010 19:39
Двухсвязный список, добавление элемента в указанную позицию redmonkey Помощь студентам 3 19.10.2010 12:29
добавление числа в список (си) zhenya.ya Помощь студентам 0 11.04.2010 21:29
Добавление записи через список в связанную таблицу(при связи с Access) megaten БД в Delphi 5 17.05.2009 15:57
Добавление в список ManU Помощь студентам 3 28.09.2008 12:55