Автор Тема: C++. Задача со списками.  (Прочитано 4881 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DeadChild

  • Ветеран
  • *****
  • Сообщений: 544
    • Просмотр профиля
C++. Задача со списками.
« : 12 Ноября 2010, 21:34:00 »
Добрый вечер. У меня проблема - нужно написать программу в C++. А я не совсем понимаю как это сделать, так как объясняют нам очень плохо... Если кто знает, помогите, пожалуйста, объясните что как.
Описать процедуру, которая объединяет два упорядоченных по неубыванию списка L1 и L2 в один упорядоченный по неубыванию список, меняя соответствующим образом ссылки в L1 и L2 и присвоив полученный список параметру L1. (предполагается, что у нас есть список1: 1 3 3, и список2: 2 2 5. из них нужно сделать список1: 1 2 2 3 3 5)

Вот примерное начало...

#include<iostream.h>
#include<conio.h>
#include<stdio.h>

const int N=5;//длина списка

struct zveno
{
int elem;
zveno* next;
};

zveno * top = NULL;

int add(int el, int zveno* top)
{
zveno* zPtr=new zweno;
zPtr->next=top;
zPtr->elem=el;
top=zPtr;
return 0;
}

int print()
{
zveno*zPtr=top;
while(zPtr!=NULL)
{
cout<<zPtr->elem<<' ';
zPtr=zPtr->next;
}
return 0;
}

int main()
{
clrscr();
cout<<"Исходный список:\n";
for(int i=0; i<N; i++){add(i);}
print(); ...

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #1 : 13 Ноября 2010, 09:15:43 »
#include <iostream>
#include <vector>
#include <algorithm>

void p(int x)
{
    std::cout << x << std::endl;
}

int main( int argc, char *argv[] )
{
    std::vector <int> a, b;

    a.push_back(1);
    a.push_back(2);
    a.push_back(4);
    a.push_back(5);

    b.push_back(2);
    b.push_back(3);
    b.push_back(5);
    b.push_back(6);
    b.push_back(7);

    std::vector <int> c( a.size() + b.size() );

    std::merge(a.begin(), a.end(), b.begin(), b.end(), c.begin());

    std::for_each(c.begin(), c.end(), p);

    return 0;
}

Оффлайн DeadChild

  • Ветеран
  • *****
  • Сообщений: 544
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #2 : 13 Ноября 2010, 16:32:38 »
#include <iostream>
#include <vector>
#include <algorithm>

void p(int x)
{
    std::cout << x << std::endl;
}

int main( int argc, char *argv[] )
{
    std::vector <int> a, b;

    a.push_back(1);
    a.push_back(2);
    a.push_back(4);
    a.push_back(5);

    b.push_back(2);
    b.push_back(3);
    b.push_back(5);
    b.push_back(6);
    b.push_back(7);

    std::vector <int> c( a.size() + b.size() );

    std::merge(a.begin(), a.end(), b.begin(), b.end(), c.begin());

    std::for_each(c.begin(), c.end(), p);

    return 0;
}

Здравствуйте! Это совершенно не то :( У нас 2 списка чисел, а у вас векторы??

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #3 : 13 Ноября 2010, 17:12:34 »
std::vector это имплементация списков.
« Последнее редактирование: 13 Ноября 2010, 17:42:39 от testtest »

Оффлайн DeadChild

  • Ветеран
  • *****
  • Сообщений: 544
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #4 : 14 Ноября 2010, 19:00:34 »
Почему Ваша программа так не похожа на мою?

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #5 : 15 Ноября 2010, 08:44:36 »
потому что я писал на C++, а вы на C

Оффлайн DeadChild

  • Ветеран
  • *****
  • Сообщений: 544
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #6 : 15 Ноября 2010, 17:22:07 »
Мы в Visual Studio работаем, нам все преподаватели говорят, что мы на С++ пишем... Получается они нас обманывают? :( И в чем разница между C и C++? Можно ли задачу сделать на C, чтоб она соответствовала моему началу?

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #7 : 17 Ноября 2010, 11:50:16 »
Цитировать
Мы в Visual Studio работаем, нам все преподаватели говорят, что мы на С++ пишем... Получается они нас обманывают?
они себя обманывают в первую очередь
Цитировать
И в чем разница между C и C++?
первое - язык программирования. второе - язык проектирования.

Цитировать
Можно ли задачу сделать на C, чтоб она соответствовала моему началу?

ссылка
« Последнее редактирование: 17 Ноября 2010, 11:55:01 от testtest »

Оффлайн DeadChild

  • Ветеран
  • *****
  • Сообщений: 544
    • Просмотр профиля
Re: C++. Задача со списками.
« Ответ #8 : 17 Ноября 2010, 19:34:46 »
Ого! Это она самая? Такая большая...
Спасибо большое!!! Буду разбираться! :)

 

Олимпиадная задача "Дипломы"

Автор DrXakep

Ответов: 0
Просмотров: 5838
Последний ответ 30 Декабря 2012, 14:09:40
от DrXakep
Задача паскаль. Составить программу для построения таблицы значений

Автор Rydon

Ответов: 1
Просмотров: 8254
Последний ответ 21 Декабря 2009, 15:49:38
от Rydon
Срочно надо написать курсовую по информатике. Задача на языке VBA.

Автор lana

Ответов: 1
Просмотров: 5635
Последний ответ 12 Сентября 2010, 19:29:18
от InfStudent
Паскаль(задача). Составить программу определения показания часов

Автор Fairmont

Ответов: 0
Просмотров: 6265
Последний ответ 24 Февраля 2011, 21:25:22
от Fairmont
Задача в Turbo С. Написать программу построения одномерного массива

Автор deamond

Ответов: 1
Просмотров: 3669
Последний ответ 21 Декабря 2011, 12:04:34
от Hellko