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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Начало работы в С++ http://www.cyberforum.ru/cpp-beginners/thread969798.html
Какую среду для С++ использовать, чтоб был хороший компилятор? как установить и начать работать? Пожалуиста, сразу ссылки. Windows 7 (64)
C++ Реализовать рекурсию Доброго времени суток! Никак не пойму как это сделать, хотябы направьте меня, что бы самому додумать Пусть в алгебраической записи выражения имеется одна операция - умножения, обозначаемая обычным способом(два множителя записаны друг за другом).Выражение состоит их строки символов и скобок "()", "","{}". Написать программу(рекурсивную), которая выполняет проверку на соответствие открывающихся и... http://www.cyberforum.ru/cpp-beginners/thread969789.html
Разработать приложение, реализующее следующие функции C++
Разработать приложение, реализующее следующие функции:  Выделяет всю доступную процессу память  Освобождает всю выделенную память  Определяет количество выделенной памяти  Определяет время выделения памяти  Определяет время освобождения памяти Память необходимо выделять функциями HeapAlloc и malloc блоками по 18 кб. Выручайте, ребят...
C++ Автоопределение длины строки
char f; cout<<"Vvedite stroku->; cin>>f; Как заставить компилятор определять длину строки, чтобы не тратить зря память, выделяя ее на избыточное количество элементов? Чтобы как бы одновременно определялась длина строки, и автоматически выделялось необходимое количество память?
C++ принадлежит ли заданная точка области http://www.cyberforum.ru/cpp-beginners/thread969765.html
Определить, принадлежит ли заданная точка с координатами (х,у) заштрихованной области. #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_CTYPE, "Russian");
C++ Не пойму ,в чём ошибка . Всё компилируется Я создал функцию поиска по заданном ключу , ключ вводится с клавиатуры . int Poisk(int *arr,int size,int key) { for(int i=0;i<size;i++) { if(key == *(arr+i)) {return i;} else return -1; } Если ключ найден в массиве , то нужно возвратить номер элемента , если нет - возвращаем -1. Всё вроде правильно написал. Но программа работает только тогда , когда нету условия else... подробнее

Показать сообщение отдельно
Laurensii
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 4
05.10.2013, 21:13     помогите написать функцию слияния списков
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");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru