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

помогите написать функцию слияния списков - C++

Восстановить пароль Регистрация
 
Laurensii
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 4
05.10.2013, 21:13     помогите написать функцию слияния списков #1
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <conio.h>
using namespace std;
 
struct Node
{
 
    int a;
    Node *next;
    Node(int a1){
        a=a1;
        
        next=NULL;
    }
};
class List
{ 
public:
    Node *top;
    List();
    void vvod(Node *pNext);//dobavlenie v konec spiska
    Node * Psl();//poisk poslednego el-ta v spiske
    void vivod();
    void sort(int k);
    Node *elm(int n, int m);//element spiska po nomeru
    
};
List::List(){
    top=NULL;
}
void List::vvod(Node *pNext)
{
    if(top!=NULL){
        Psl()->next=pNext;
    }
    else{
        top=pNext;
    }
}
Node * List::Psl(){
    Node * Odn = top;
    if(Odn == NULL){
        return NULL;
    }
    while(Odn->next!=NULL){
        Odn=Odn->next;
    }
    return Odn;
}
void List::vivod(){
    Node *t=top;
    if(t==NULL){
        cout<<"spisok pust"<<endl;
    }
    do{
        cout<<t->a<<"->";
    }
    while((t=t->next)!=NULL);
}
void List::sort(int k)
{
    for(int i=0;i<k;i++){
        for(int j=k-1;j>i;j--)
            if(elm(j,k)->a<elm(j-1,k)->a)
            {
                int b;
                b=elm(j,k)->a;
                elm(j,k)->a=elm(j-1,k)->a;
                elm(j-1,k)->a=b;
                
            }
            
        }
    }
 
 
 
Node * List::elm(int n, int m){
    Node *t=top;
    if(t==NULL||n>m-1){
        return NULL;
    }
    for(int i=0;i<m;++i){
        if(i==n){
            return t;
        }
        t=t->next;
    }
    return NULL;
    
}
 
void main(){
    List list1, list2, list;
    Node *node, *x;
    int l, k;
    int a, b;
    cout<<"kol-vo el-v v spiske 1: ";
    cin>>l;
    cout<<endl;
    cout<<"Enter spis 1: ";
    for(int i = 0; i<l; i++)
    {
        
        cin>>a;
        node = new Node(a);
        list1.vvod(node);
    }
        cout<<"kol-vo el-v v spiske 2: ";
        cin>>k;
        cout<<endl;
        cout<<"Enter spis 2: ";
        for(int i=0; i<k;++i){
            cin>>b;
            node =new Node(b);
            list2.vvod(node);
            
        }
        
        list1.vivod();
        cout<<endl;
        list2.vivod();
        cout<<endl;
        list1.sort(l);
        cout<<endl;
        list2.sort(k);
        cout<<endl;
        list1.vivod();
        cout<<endl;
        list2.vivod();
        cout<<endl;
        
 
        system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 21:13     помогите написать функцию слияния списков
Посмотрите здесь:

C++ Составить функцию конкатенации (слияния) двух строк
C++ Написать функцию, которая могла бы передать значение в другую функцию
C++ Помогите написать рекурсивную функцию
C++ написать функции для списков c++/c
C++ Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K)
не могу разобраться как написать функцию сортировки и исправить функцию добавления в стек C++
C++ Написать функцию, которая возвращает минимальное из двух чисел, которые переданы в функцию в качестве параметров
C++ рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х
C++ Написать программу для сортировки массива способами шелла вставки слияния и пузырьком
C++ Сортировка посредством слияния списков
C++ Написать функцию, которая, в зависимости от выбора пользователя вызывает соответствующую функцию
Решить задачу слияния 2 списков по какому-либо условию C++

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

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

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