1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
1

В списке целых чисел найти положительное и отрицательное

14.09.2017, 17:02. Показов 528. Ответов 0

Добрый день, по данному шаблону нам дали на рассмотрения 2 задачи, суть первой заключается в создание алгоритма поиска положительного числа, а суть второго хотя бы 1 отрицательного. Я не силен в теме одно/дву-связных списков и стеков, помогите пожалуйста с кодом к одной из задач. заранее спасибо!

1 шаблон на нахождения хотя бы одного отрицательного числа :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int max_negative(elem* first)
{int num;
    int max=0;
    elem* i=first;
    while(i!=NULL)
    {
        if(i->num < 0)
        {
            if((max == 0) || (i->num < max)) max=i->num;
        }
        i=i->next;
    }
    return max;
}
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
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
136
137
138
139
140
141
142
143
144
145
#include <iostream>
#include <string>
 
template<class T>
class List
{
public:
    List():head(0), tail(0)
    {
    }
    
    ~List()
    {
        delete head;
        delete tail;
    }
 
    void push_back(T val)
    {
        Node* Temp;
        Temp=new Node;
        Temp->elem=val;
        if(head==0)
        {
            head=Temp;
            tail=Temp;
            return;
        }
        tail->next=Temp;
        tail=Temp;
    }
 
    void print()
    {
        if(head==0)
        {
            throw std::string("List is empty!");
        }
        for(Node* ptr=head; ptr!=0; ptr=ptr->next)
        {
            std::cout<<ptr->elem<<' ';
        }
        std::cout<<'\n';
    }
 
    void push_front(T val)
    {
        Node* Temp;
        Temp=new Node;
        Temp->elem=val;
        Temp->next=head;
        head=Temp;
    }
 
    void erase()
    {
        if(head==0)
        {
            throw std::string("List is empty!\n");
        }
        Node* delptr=head->next;
        head=head->next;
        delete delptr;
    }
    
    void erase(T val)
    {
        Node* ptrPrev;
        ptrPrev=new Node;
        if(head==0)
        {
            throw std::string("List is empty\n");
        }
        for(Node* ptr=head; ptr!=0; ptr=ptr->next)
        {
            if(ptr->elem==val)
            {
                ptrPrev->next=ptr->next;
                delete ptr;
                break;
            }
            ptrPrev=ptr;
        }
        if(ptrPrev->next==0)
            std::cout<<"There are no elements in list equal to "<< val <<'\n';
    }
 
    void clear()
    {
        while(head!=0)
            erase();
    }
 
    void find(T val)
    {
        if(head==0)
        {
            throw std::string("List is empty!\n");
        }
        for(Node* ptr=head; ptr!=0; ptr=ptr->next)
        {
            if(ptr->elem=val)
                std::cout<<"Element "<< val <<" is finded\n";
            return;
        }
        std::cout<<"Element "<< val <<" is not finded\n";
    }
    
    void insert(T val)
    {
        if(head==0)
        {
            push_front(val);
            return;
        }
        Node* Temp=new Node;
        Temp->elem=val;
        Node* founded=head;
        for(founded; founded!=0; founded=founded->next)
        {
            if(founded->elem<val)
                break;
        }
        if(founded==0)
        {
            push_front(val);
            return;
        }
        Temp->next=founded->next;
        founded->next=Temp;
    }
 
private:
    struct Node
    {
                Node():next(0), elem(0)
                {
                }
        Node* next;
        T elem;
    };
 
    Node* head;
    Node* tail;
};
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2017, 17:02
Ответы с готовыми решениями:

Дан массив целых чисел выяснить какое встречается первым положительное или отрицательное
Дан массив целых чисел выяснить какое встречается первым положительное или отрицательное решить...

Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше - положительное или отрицательное.
Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше -...

Дана последовательность целых чисел . Выяснить, какое число встречается раньше — положительное или отрицательное
Помогите пожайлуста

Дана последовательность целых чисел а1,а2,а3,...аn. Выяснить, какое число встречается раньше-положительное или отрицательное.
Дана последовательность целых чисел а1,а2,а3,...аn. Выяснить, какое число встречается...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2017, 17:02
Помогаю со студенческими работами здесь

Дана последовательность целых чисел а1, а2,..., аn. Выяснить, какое число встречается раньше — положительное или отрицательное
3. Дана последовательность целых чисел а1, а2,..., аn. Выяснить, какое число встречается раньше —...

Дан массив целых чисел а один,а два.а эн. Выяснить, какое число встречается раньше - положительное или отрицательное
Дан массив целых чисел а один,а два....а эн. Выяснить, какое число встречается раньше -...

Найти наименьшее положительное и наибольшее отрицательное из 6 чисел
2)Вводится 6 целых чисел. а) найти наименьшее положительное (плюсовое) число б) найти наибольшее...

Найти наибольшее отрицательное число и наименьшее положительное число среди 6 чисел
Даны шесть целых чисел. Найдите наибольшее отрицательное число и наименьшее положительное число...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru