1 / 1 / 0
Регистрация: 17.01.2022
Сообщений: 79
1

Извлечь из списка все положительные элементы, которые размещены перед первом отрицательном элементом

24.11.2022, 17:45. Показов 180. Ответов 0

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста. Недавно начал изучать стеки и очереди.


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
struct element
    {
    element *next;
    int value;
    };
 class list
 {
 element *head;
 public:
 list() {head=NULL;}
 void Add();
 void Print();
 void Search();
 void Delete();
 void deleteNode(int);
 void zavd();
 }obj;
 void list::Add()
 {
 randomize();
 int data=30-random(40);
 if(head==NULL)
    {head=new element;
     head->value=data;
     head->next=NULL;
    }
    else {element *tmp=head;
            while (tmp->next!=0)
                {tmp=tmp->next;
                }
                element *temp=new element;
                temp->value=data;
                temp->next=NULL;
                tmp->next=temp;
         }
    Form1->Memo1->Lines->Add("Було додано новий елемент:"+IntToStr(data));
 }
void list::Print()
{ element *tmp=head;
    if(head==NULL)
        {Form1->Memo1->Lines->Add("Спочатку додайте елементи");
        }
        else { Form1->Memo1->Lines->Add("Eлементи списку: ");
               while(tmp!=NULL)
               {Form1->Memo1->Text=Form1->Memo1->Text+IntToStr(tmp->value)+" ";
                tmp=tmp->next;
               }
              Form1->Memo1->Perform(EM_SCROLLCARET,0,0);
             }
}
 
void list::deleteNode(int nodeOffset){
     element *temp1 = head, *temp2 = NULL;
  int ListLen = 0;
  if (head == NULL) {
    return;
  }
  while (temp1 != NULL) {
    temp1 = temp1->next;
    ListLen++;
  }
  if (ListLen < nodeOffset) {
    return;
  }
  temp1 = head;
  if (nodeOffset == 1) {
    head = head->next;
    delete temp1;
    return;
  }
  while (nodeOffset-- > 1) {
    temp2 = temp1;
    temp1 = temp1->next;
  }
  temp2->next = temp1->next;
  delete temp1;
}
 
void list::zavd(){
 //вот здесь задание не знаю как сделать
 
}
 
void list::Search()
{int data,temp;
data=StrToInt(Form1->Edit2->Text);
element *tmp=head;
while(tmp!=0)
        {if(tmp->value==data)
            {Form1->Memo1->Lines->Add("віднайдений елемент: "+IntToStr(tmp->value));
             break;
            }
        tmp=tmp->next;
        }
if(tmp==NULL)
    {Form1->Memo1->Lines->Add("Не існує елемента з таким значенням!");
    }
Form1->Memo1->SelStart=Form1->Memo1->Text.Length();
Form1->Memo1->Perform(EM_SCROLLCARET,0,0);
}
 
void list::Delete()
{ int data;
  data=StrToInt(Form1->Edit1->Text);
  int i=0;
  element *tmp=head;
  while(tmp->value!=data&&tmp!=NULL)
  {tmp=tmp->next;
  i++;
  }
  if((tmp==head)&&(data==head->value))
   {head=head->next;
    delete tmp;
    Form1->Memo1->Lines->Add("Перший елемент був видалений!");
    return;
   }
   else if ((tmp->next==NULL)&&(tmp->value==data))
        {i--;
        tmp=head;
        while(i>0)
            {tmp=tmp->next;
            i--;
            }
        delete tmp->next;
        tmp->next=NULL;
        Form1->Memo1->Lines->Add("Останній елемент був видалений!");
        return;
        }
   else if(tmp->value==data)
    {i--;
    tmp=head;
    while(i>0){tmp=tmp->next;
                i--;
              }
    element *temp=(tmp->next)->next;
    delete tmp->next;
    tmp->next=temp;
    Form1->Memo1->Lines->Add("Eлемент був видалений!");
    }
   }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2022, 17:45
Ответы с готовыми решениями:

Все положительные элементы, стоящие перед минимальным положительным элементом, переслать в «хвост» массива
В массиве A(N) все положительные элементы, стоящие перед минимальным положительным элементом,...

Все положительные элементы, стоящие перед минимальным положительным элементом, переслать в «хвост» массива
В массиве A=(a1, а2, ..., аn) все положительные элементы, стоящие перед минимальным положительным...

Все положительные элементы, стоящие перед минимальным положительным элементом массива, переслать в его «хвост»
В массиве A(N) все положительные элементы, стоящие перед минимальным положительным элементом,...

В массиве все положительные элементы, стоящие перед минимальным положительным элементом, переслать в хвост массива
Доброго времени суток! Не могу решить одну задачку, помогите кто может. Вот задачка В массиве А =...

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

В массиве все положительные элементы, стоящие перед минимальным положительным элементом, переслать в хвост массива
В массиве A=( a1, а2, ..., аn) все положительные элементы, стоящие перед минимальным положительным...

В массиве все положительные элементы, стоящие перед минимальным положительным элементом, переслать в хвост массива
В массиве A=(a1, а2, ..., аn) все положительные элементы, стоящие перед минимальным положительным...

Вывести строку, в которой все элементы списка разделены запятой и пробелом, а перед последним элементом вставлено слово
Добрый день! Начал изучать Python по книге, наставника нет и спросить не у кого. Выполняю...

Создать структуру "Очередь" и удалить все элементы, которые находятся перед минимальным элементом очереди
Очень нужна помощь. Нужно создать структуру очередь и удалить все элементы, которые находяться...

Объединить два списка в один так, чтобы элементы второго списка, которые есть в первом, в новом списке не были
Prolog Добавлено через 1 минуту Умные люди, помогите пожалуйста!!!!!! Мне на прологе нужно...

Удалить элементы, которые находятся перед минимальным элементом
Сформировать двумерный массив целых чисел, используя датчик случайных чисел. Использовать...

Объединить 2 списка в один, элементы которого будут только те элементы, которые есть в первом, но нет во втором
Например '(1 2 4 7 8) '(3 5 8 2 0 5) Результат - '(1 4 7)


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

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

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