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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2012, 08:30   #1
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию Связные списки c++

Задание:
Программа добавляет в список L1 за первым вхождением елемента E все элементы списка L2.
Допустим, если элемент E - посл. в списке L1, то получается, а если в середине, то не получается. Может уже кто-то делал?
cheef вне форума Ответить с цитированием
Старый 21.02.2012, 17:22   #2
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Список односвязный.
cheef вне форума Ответить с цитированием
Старый 22.02.2012, 21:18   #3
Klausms
Пользователь
 
Аватар для Klausms
 
Регистрация: 24.10.2011
Сообщений: 38
По умолчанию

код скинь
Если E в середине , то последний элемент списка L2 куда определяешь?
Klausms вне форума Ответить с цитированием
Старый 03.03.2012, 13:29   #4
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Конкретно для этой ф-ции кода нет, я попытался, не получилось все удалил.
Ну получается так будет:
L1: 1,5,6,7,8;
L2 0,0,0,0
E = 6
L1 = 1,5,6,0,0,0,0,7,8
cheef вне форума Ответить с цитированием
Старый 03.03.2012, 13:30   #5
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию В

Вот общий код:
Код:
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <stdlib.h>
# include <unistd.h>

using namespace std;

class list
{	
	public:
	int number;
	list *next;
	list(int n = 0, list *p = NULL)
	{
		number = n;
		next = p;
	}
};

list *Add_Element(list *head, int number);
int Find_Number_Element(list *L1, int Element);
void PRINT(list *head);
void menu();
list *Go_Test(list *L1, list *L2, int Number);

int main()
{
	cout << "Программа добавляет в список L1 за первым вхождением елемента E все элементы списка L2.\n";
	menu();
	return(0);
}

void menu()	//Ф-ция меню программы.
{
	list *L1 = NULL, *L2 = NULL;
	int y, E;
	do
	{	
		system("clear");
		int go, number;
		cout << "Меню:\n";
		cout << "1. Добавить элемент в 1 список.\n";
		cout << "2. Добавить элемент во 2 список.\n";
		cout << "3. Напечатать 1 список.\n";
		cout << "4. Напечатать 2 список.\n";
		cout << "5. Ввести E.\n";
		cout << "6. Выполнить задание.\n";
		cout << "7. Выход.\n";
		cin >> go;
		switch(go)
		{
			case 1: {
				cout << "Введите элемент: "; 
				cin >> number;
				L1 = Add_Element(L1, number);
				cout << "Добавлено...\n"; 
				break;
			}
			case 2: {
				cout << "Введите элемент: "; 
				cin >> number;
				L2 = Add_Element(L2, number);
				cout << "Добавлено...\n"; 
				break;
			}
			case 3: PRINT(L1); break;
			case 4: PRINT(L2); break;
			case 5: cout << "Введите E: ";cin >> E; break;
			case 6: Go_Test(L1, L2, Find_Number_Element(L1, E)); break;
			case 7: return;
			sleep(10000);
		}
	}
	while(1);
}
void PRINT(list *head)	//Печать передаваемого списка на экран.
{
	cout << "Ваш список: ";
	while(head != NULL)
	{
		cout << head->number ;
		cout << " "; 
		head = head->next;
	}
	cout << endl;
}
int Find_Number_Element(list *L1, int Element)	//Поиск номера элемента "Element" в передаваемом списке.
{
	int i(0);
	while(L1->next != NULL) {
		i++;
		L1 = L1->next;
	}
	return i;
}

list *Add_Element(list *head,  int number)	//Добавление элемента number в указанный список head.
{
	list *q = new list(number), *t = head;
	if(head == NULL) return q;
	while(t->next != NULL) t = t->next;
	t->next = q;
	return head;
}

list *Go_Test(list *L1, list *L2, int Number)	//Основная функция по решению задачи.
{
	list *t1 = L1, *t2 = L2;
	for(int i = 0; i != Number; i++)
	{
		t1 = t1->next;
	}
}
cheef вне форума Ответить с цитированием
Старый 11.03.2012, 22:12   #6
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

За три года пребывания на форуме можно было бы уже сообразить, что "update, ребятки" не приветствуется.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связные списки MasterSporta Общие вопросы C/C++ 2 19.05.2011 02:30
Связные списки в графах Neitrosha Помощь студентам 0 17.05.2011 20:38
Связные списки Маринка777 Общие вопросы .NET 3 08.06.2010 23:41
Линейные связные списки и файловый ввод-вывод coll3ctor Помощь студентам 0 02.05.2010 14:54
Связные списки\строки Khristoshin Помощь студентам 0 27.01.2010 20:44