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

Удаление максимального элемента из списка с предыдущим элементом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заполнение ListView http://www.cyberforum.ru/cpp-beginners/thread846885.html
У меня есть 5 массивов: dataA=... dataB=... m1=... m2=... m3=.. Как заполнить определенную колонку ListView определенным массивом??
C++ PCHAR в String Помогите начинающему программисту что здесь не так? И правильно ли я проверяю существование папки? Мне нужно с WCHAR_T в стринг вроде olo-это уже строка,но в функции CreateDir пишет ошибку в olo.c_str. Помогите пожалуйста. wchar_t *user= new wchar_t ; GetUserName(user,&size); PCHAR a; a=PCHAR(user); std::string olo(a,sizeof(a)); if(CreateDirectory(L"C:\Documents and... http://www.cyberforum.ru/cpp-beginners/thread846884.html
C++ Парное количество символов
Как сделать что бы есть в введённом в консоли тексте выводило назад только те в которых парное количество символов ? Пример: Ввёл //Мама ама Вывело //Мама Есть идея сделать всё через if (str.length()%2== Только не могу дописать действие. Помогите разобратся
C++ Функция interchange(), которая выполняет обмен значений между двумя переменными
Нужно написать программу с функцией interchange(), которая выполняет обмен значений между двумя переменными типа int вот то что я набросал ,посмотрите что не так #include<iostream> using namespace std; int interchange() {int q,a,b; q=a; a=b; b=q; return 0;}
C++ динамический ассоциативный массив http://www.cyberforum.ru/cpp-beginners/thread846847.html
Подскажите как организовать ассоциативный массив в виде динамической структуры для класса template <class T> class el { private: struct material {
C++ компилятор Dev-c++ прочитал что для работы с графикой в Dev-c++ нужно подключить библиотеку graphics.h и прописать в настройках компилятора строку -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 кто то может рассказать что означают команды в этой строке? подробнее

Показать сообщение отдельно
Ilnurvampire
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 18

Удаление максимального элемента из списка с предыдущим элементом - C++

24.04.2013, 00:57. Просмотров 648. Ответов 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
136
137
138
139
140
141
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct List
{
    int data;
    List *next;
    List *prev;
};
List *AddLast(List *begin, int a);
List *Make_List(int n)
{
    List *first=NULL;
int a;
for(int i=0;i<n;i++)
 {
    cin>>a;
    first=AddLast(first,a);
 }
return first;
};
 
List *AddLast(List *begin, int a)//добавление элементов в конец
{
if (begin==NULL)
{begin=new List;
begin->data=a;
begin->next=NULL;
begin->prev=NULL;
    return begin;}
else
    {
    List *current =begin;
    while (current->next!=NULL)
    current=current->next;
    List *Add=new List;
    Add->data=a;
    Add->next=NULL;
    Add->prev=current;
    current->next=Add;
    return begin;}
    }
void Print_List(List*first)//вывод списка
    { 
    if(first==NULL)
    cout<<"Список пуст";
    else
    {
    List *current=first;
while (current!=NULL)
{cout<<current->data<<" ";
current=current->next;
}}
cout<<endl;
}
 
 
int search_max(List *begin)//поиск макс. элемента
{
    
    List *current=begin;
    int max=current->data;
    while(current!=NULL)
    {
        if(current->data>max)
         max=current->data;
         current=current->next;
    }
    return max;
}
 
List *Delete(List *begin, int max_l)//удаление макс. элемента
{
    if (begin!=NULL)
      {
          if(begin->data==max_l)
          {
              List *current=begin;
              
              begin=begin->next;
              
              
              
              delete current;
              //delete previous;
              return begin;
          }
          else 
          {
              List *current=begin;
              while ((current!=NULL)&&(current->data!=max_l))
              current=current->next;
              if(current!=NULL)
              {
                  current->prev->next=current->next;
                  if (current->next!=NULL)
                  (current->next)->prev=current->prev;
                  delete current;
                  return begin;
              }
              
          }
      }
}
 
 
int main()
{
    List *begin=NULL;
    int option;
 int n;
 int max_l;
 
cout<<"1-заполнить список\n";
cout<<"2-вывод списка\n";
cout<<"3-удаление\n";
 while(1)
 
 {
     cout<<"Введите команду: ";
     cin>>option;
     switch (option)
     {
         case 1:
 cout<<"введи количество элементов: ";
 cin>>n;
 begin=Make_List(n);
         break;
         case 2:
 Print_List(begin);
         break;
         case 3:
 max_l=search_max(begin);
 //cout<<"max element"<<max_l;
         begin=Delete(begin,max_l);
         cout<<"максимальный элемент удалён\n";
         break;
     }
 }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru