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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2011, 22:21   #1
KOPC1886
Пользователь
 
Регистрация: 28.10.2010
Сообщений: 26
Злость Вставка одного списка в другой.

Здравствуйте!) Мне нужна помощь в решении задачи "Вставка одного списка в другой." Вот, что у меня есть. На с++
Код:
// Списки и структуры.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "H1.h"
using namespace std;

//void sk(Node *pbeg,Node *pend);

int _tmain(int argc, _TCHAR* argv[])
{
	Node *pbeg = first('a'); // Формирование первого элемента списка 1
	Node *pend = pbeg;
	Node *n2=first('e');// Формирование первого элемента списка 2
	Node *pend2=n2;
	Node *n3;
	Node *pend3;

	// Спискb заканчивается, едва начавшись
	
	/*
	 ifstream fin("array.txt", ios::in);
     if (!fin)      cout << "Not file!"<< endl;
     int nrow, i;
     fin >> nrow;
     char *M = new char [nrow];
     for (i = 0; i < nrow; i++)      fin >> *(M + i);
*/
	int size;
	int size2;
	int ind;
	int scob=0;
	char Form[]={"bczxvn"};//из массива в список №1
	size=strlen(Form);
	for (int i = 0; i<size; i++)
	{
		add(&pend,Form[i]);
		if (Form[i]=='(')
		{				
			scob++;
			ind=i;
			
		}
		if (Form[i]==')')
		{
			scob--;
			ind=i;
		}	
	}		
	Node *pv = pbeg;
	Node *pk=new Node;
	Node *ph=new Node;
	Node *pt=new Node;
	Node *pd=new Node;
	Node *pr=new Node;


	char Temp[]={"frt"};//из массива в список №2
	size2=strlen(Temp);
	for (int i = 0; i<size2; i++)
	{	
		add(&pend2,Temp[i]);			
	}
	//incert(pbeg, &pend, 'y',&pendn);
	// Удаление элемента 5
	//if(!remove (&pbeg, &pend, Form[3]))cout << "не найден";
	// Вставка элемента 200 гюсле элемента 2:
	while (pv)
	{	
		/*// Поис скобок и их замена на пробелы
		if(pv->a=='(')
		{					
			pk=pv;			
			while(pk->next!=NULL)
			{
				pk = pk->next;
				if(pk->a==')')
				{
					pk->a=' ';
					pv->a=' ';
					break;
				}				
			}	
		}		*/
		//Вставка списка №2 в список №1		
		if(pv->a=='c')
		{

			ph=searchEnd(n2);
			pk=pv;
			pk->next=n2;
			(pk->next)->next=ph->next;			
		}
		
		// вывод списка на экран
		cout << pv->a;
		pv = pv->next;
		
	}
	cout <<endl;
	
/*
	for(pv = pbeg; pv!=0; pv = pv-> next)
	{
		if(pv->a=='k')
		{
			pk=pv;
			pk=n2->next->prev;
		}
		cout<<pv->a;
	}
	

	
	if (scob> 0)
           cout << "( bigger"<<ind<<endl;
    else if (scob< 0) 
           cout << ") bigger"<<ind<<endl;
    else if (scob == 0) cout << "Good";
	*/

	return 0;
}

/*void sk(Node **pbeg,Node **pend)
{
	Node *pv=new Node;
	if(pv->a=='(')
		{					
			Node *pk=pv;			
			while(pk->next!=NULL)
			{
				pk = pk->next;
				if(pk->a==')')
				{
					pk->a=' ';
					pv->a=' ';
					break;
				}				
			}	
		}

}
*/
Вот по поводу вставки списка в другой
Код:
if(pv->a=='c')
		{

			ph=searchEnd(n2);
			pk=pv;
			pk->next=n2;// Здесь после элемента "с" происходит  вставка элемента "е" и последующих элементов списка №2. А вот после элемента "с" в списке №1 есть еще другие элементы, но программа их не выводит.
						
		}
Мне нужно связать конечный элемент списка №2 с элементом, который идет после "с" в списке№1. Как это сделать?
KOPC1886 вне форума Ответить с цитированием
Старый 03.12.2011, 22:30   #2
-=ЮрА=-
C/C++ advanced
Пользователь
 
Аватар для -=ЮрА=-
 
Регистрация: 17.11.2011
Сообщений: 17
По умолчанию

Есть два списка
1-й назовём его АВ(как бы из двух частей)
2-й нозовём его С
Я поступал так
Шаг 1-й добавление списка С к АВ
АВС
Шаг 2 добавление В вконец АВС
АВСВ
Шаг 3
Выкидыване 1-го В (просто связал last А с prev C)
АСВ
За "хлеб и воду" не работаю
-=ЮрА=- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание одного списка из двух Infanterie Microsoft Office Excel 1 05.05.2011 21:33
Вставка одного HTML в другой Cannibal Помощь студентам 1 24.01.2011 17:53
DBGrid из одного в другой MSD БД в Delphi 3 28.04.2010 15:41
Проблема переноса строк из одного списка (Listbox) в другой. hip3r Win Api 4 13.10.2009 11:59
вставка значений из списка timtim Microsoft Office Excel 2 23.07.2009 16:17