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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 22:58   #1
Rom@shka
 
Регистрация: 13.12.2008
Сообщений: 9
По умолчанию Слияние списков

Задание,сделать слияние 2 упорядоченных списков в один упорядоченный
Rom@shka вне форума Ответить с цитированием
Старый 27.04.2009, 23:15   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Мы все дружно должны начать его выполнять?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 27.04.2009, 23:17   #3
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

ну дописываешь один список в конец (или начало, тут не принцыпиально) другова списка, а затем полученый список упорядычеваешь.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 27.04.2009, 23:36   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

1. Сравниваем первые элементы обоих списков
2. Меньший из этих элементов добавляем в конец выходного списка
3. если один из списков закончился, то сливаем остатки второго в выходной список
4. если оба списка закончились, то выход
5.иначе на шаг 1
pu4koff вне форума Ответить с цитированием
Старый 06.05.2009, 17:18   #5
Rom@shka
 
Регистрация: 13.12.2008
Сообщений: 9
По умолчанию

Я тут написала кое-что,но прога не работает.
Код:
#include<iostream>
using namespace std;
struct Node{
Node*next;
int info;
};
Node slian(Node*first1,Node*first2){
Node*first;
if(!first1)
return *first2;
if(!first2)
return *first1;
if(first1->info<first2->info){
first=first1;
first1=first->next;}
else {
first=first2;
first2=first2->next;}
Node*last;
while(first1!=NULL&&first2!=NULL){
if(first1->info<first2->info){
last->next=first1;
first1=first1->next;}
else{last->next=first2;
first2=last->next;}
if(first1)
last->next=first1;
if(first2)
last->next=first2;
return *first;}
int main(){
Node*first1=new Node;
Node*first2=new Node;
first1->next=p;
Node*q=new Node;
first2->next=q;
p->next=NULL;
q->next=NULL;
Node f=slian(first1,first2);
return 0;}

Последний раз редактировалось MaTBeu; 07.05.2009 в 20:24.
Rom@shka вне форума Ответить с цитированием
Старый 07.05.2009, 20:24   #6
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Ну... она наверное неправильная. А в чем ошибка?
MaTBeu вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние и поля!!!! Окоча Юра Microsoft Office Word 2 01.03.2009 22:05
слияние списков counter Общие вопросы C/C++ 4 02.01.2009 22:47
Помогите сделать слияние! Adm Microsoft Office Word 1 17.04.2008 08:43
Естественное слияние в массивах Virus-Haker Помощь студентам 2 07.02.2008 13:40
Слияние в Ворде. Peter86 Microsoft Office Word 1 15.10.2007 09:46