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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2019, 21:31   #1
Alexey90
Новичок
Джуниор
 
Регистрация: 20.03.2019
Сообщений: 1
По умолчанию Разбить массив на 2 части по значению элемента

Доброго времени суток, прошу помочь с данным вопросом.
Мне нужно разбить двусвязный список на основе массива, который вводит пользователь на 2 части по значению элемента для разбития.

Посоветовали сделать таким образом:
Можно сделать какой нибудь bool флаг, типа bool valueFound = false, а в теле цикла проверка на него, если false - копируем в первый список, если true - во второй. После чего Вы просто бежите по массиву копируя элементы в первый список. Как только найдете нужное число, скопируйте его в первый список и поставьте флаг в true.

Но я не совсем понимаю, как мне записывать элементы из list в list2 и list3 может кто-нибудь подсказать? И правильные ли выражения я записал в цикл for (который закомментирован).
Ниже весь код.

Код:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>

using namespace std;

#define MAX 20

int main(void)

{
	bool valueFound = false;

	int list[MAX], list2[MAX], list3[MAX];

	int next[MAX];

	int prev[MAX];

	int end = 0;

	int begin = 0;

	for (int i = 0; i < MAX; i++)

	{
		list[i] = next[i] = prev[i] = 0;
	}

	cout << "Input the number of elements: ";
	int n = 0;

	cin >> n;

	prev[0] = -1;

	cout << "Input elements of list: ";

	int count = 0;

	for (int i = 0; i < n; i++)

	{
		cin >> list[i];

		next[i] = i + 1;

		prev[i] = i - 1;

		count++;

	}

	prev[0] = -1;

	next[count] = -1;

	begin = 0;

	end = count - 1;

	cout << "Elements of list: ";

	int temp = begin;

	do {
		printf("%d ", list[temp]);

		temp = next[temp];

	} while (next[temp] < n);

	cout << list[temp] << endl;

	// for (int j = 0; j < n; j++) 
	// {
	// 	if (valueFound)
	//	{
	
	//	}
	
	//	if (!valueFound)
	//	{

	//	} 
    //	}  

	system("pause");

	return 0;
}
Alexey90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить строку на две части dcLout Паскаль, Turbo Pascal, PascalABC.NET 3 06.05.2016 16:47
как разбить код на 2 части курбанниязов Помощь студентам 4 09.06.2014 13:19
[XML] Нахождение аттрибута элемента по значению дочернего элемента. Banavia C# (си шарп) 10 29.07.2013 00:48
Замена части формулы по значению ячейки klip Microsoft Office Excel 3 05.03.2010 14:45
Разбить файл на 4 части borzoni Паскаль, Turbo Pascal, PascalABC.NET 7 31.05.2008 10:51