Форум программистов, компьютерный форум CyberForum.ru

Обьединить 2 сортированных списка в один,чередуя элементы первого и второго - C++

Восстановить пароль Регистрация
 
kirill0000
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 22
31.05.2012, 16:29     Обьединить 2 сортированных списка в один,чередуя элементы первого и второго #1
Обьединить 2 сортированных списка в один,чередуя элементы первого и второго сортированного списка.
У меня есть похожее,но как переделать я не знаю.Вот программа,которая обьединяет 2 списка в один,в котором второй стоит перед первым.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream> 
#include <cstdlib> 
#include <ctime> 
using namespace::std; 
struct node 
{ 
 double num;     //Описание структуры список 
 node *next; 
}; 
node* toList(node* head ,double num)   //Функция добавления и сортировки списка 
 { node* pv=new node; 
  pv->num=num; 
  pv->next=0; 
  if (head) 
  {  node* cur=0; 
     if(head->num> pv->num) 
      {     pv->next=head; 
    head=pv; 
       } 
   else 
    {  cur=head; 
       while((cur->next) && (cur->next->num < pv->num)) 
       cur=cur->next; 
       pv->next=cur->next; 
       cur->next=pv; 
     } 
   } 
else head=pv; 
return head; 
} 
node* toListUnsort(node* head ,double num)   //Функция добавления в конец списка 
{ 
  node* pv=new node; 
  pv->num=num; 
  pv->next=0; 
  if (head) 
 { 
  node* cur=0; 
  cur=head; 
       while(cur->next) 
       cur=cur->next; 
       pv->next=cur->next; 
       cur->next=pv; 
 } 
 else head=pv; 
return head; 
} 
void printList(node* pv)    //Функция вывода на экран 
{ 
  if (!pv) 
    cout<<"\nСпикок пуст\n";  //Проверка на пустоту списка 
  else 
    while(pv!=NULL) 
   { 
     cout<<pv->num<<" "; 
     pv=pv->next; 
    } 
 } 
int main()                       
{ 
 setlocale(LC_ALL,"Russian_Russia.1251");
 srand(time(0));//Инициализируем счётчик псевдослучайных чисел 
 double n; 
 node *head1=0; 
 node *head2=0; 
 cout<<"\nВведите количество элементов первого списка: "; 
 cin>>n; 
  for (int i=1;i<=n;i++) 
 { 
   head1= toList(head1 ,rand()%100); 
  } 
 cout<<"\nВведите количество элементов второго списка: "; 
 cin>>n; 
  for (int i=1;i<=n;i++) 
 { 
   head2= toList(head2 ,rand()%100); 
  } 
 cout<<"\nЭлементы первого списка: ";  
 printList(head1); cout<<endl; 
 cout<<"\nЭлементы второго списка: "; 
 printList(head2); cout<<endl; 
 while(head1!=NULL)
{ 
 head2=toListUnsort(head2,head1->num); 
 head1=head1->next; 
} 
 cout<<"\nСписок(хвост второго к голове первого): "; // 
 printList(head2); 
 cout<<endl; 
 return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 16:29     Обьединить 2 сортированных списка в один,чередуя элементы первого и второго
Посмотрите здесь:

C++ Описать функцию, которая определяет, входят ли все элементы первого списка в состав второго списка.
По двум заданным одномерным массивам формируется третий, содержащий в начале элементы первого, а в конце – элементы второго массива. C++
Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого C++
C++ Выходной поток первого числа, второго , суммы первого и второго чисел
C++ Получить третий массив C[15] по правилу: вначале элементы первого массива, затем элементы второго массива
Записать в третий файл через один содержимое первого файла и второго C++
Объединить два массива одинаковой длины в третий, чередуя элементы первого и второго массивов C++
C++ Списки. Как создать одновременно 2 списка? Как из второго списка поместить элементы в первый?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru