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

Сортировка стеков - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод очереди http://www.cyberforum.ru/cpp-beginners/thread1048963.html
Здравствуйте, у меня такой вопрос, я создал очередь с помощью queue, можно ли вывести всю очередь, у меня получалось выводить только первый и последний элементы =\
C++ Ошибка при освобождении памяти массива string Вот тут вот при delete возникает ошибка, и пишет "The program ' Array Template.exe: Native' has exited with code 3 (0x3)." template <class Type> void Array<Type>::operator+=(Type value) { Array<Type> tmp(*this); // сохраняем текущий массив delete theArray; // освобождаем память size++; // увеличиваем размер theArray = new Type; // создаем новый массив for (int i = 0; i < size-1;... http://www.cyberforum.ru/cpp-beginners/thread1048956.html
C++ Программа должна в себе учитывать 3 вещи: Наследование, Сортировка и Поиск по данным
Мне через пару дней нужно сдать курсовую работу, а она еще не готова. Я в отчаянье! Кто может у кого есть подобна программа поделитесь пожалуйста. Программа должна в себе учитывать 3 вещи: Наследование, Сортировка и Поиск по данным. Размер программы не важен лишь бы она работала и выполняла определенные функции которые указаны выше. Заранее большое спасибо.
Задача на строки C++
Здравствуйте. Мне на завтра несколько задач нужно дорешать, решила сама уже на нахождение количества разделителей в строке и на матрицы, осталась еще одна, завтра последний день сдачи((( сама признаюсь честно не смогу решить эту задачу. Помогите пожалуйста
C++ Для автосалона составить каталог поддержанных автомобилей, http://www.cyberforum.ru/cpp-beginners/thread1048947.html
Извините, просто не успеваю к зачету))) Нужен код программы на C++ Хотя бы похожая программа Вот условие Для автосалона составить каталог поддержанных автомобилей, который должен содержать: 1) марка авто 2) адрес предыдущего владельца 3) пробег
C++ Ошибка в функции! Господа знатоки, открытое шифрование Эль-Гамаля, функция дешифрования работает не правильно, например я шифрую текст: завтра в 8 часов , задаю параметры p,g,x , идет шифрование , зашифрованное сообщение получается например (7807 29351 1613 15576 9709 12646 20899 28406 2529 1648 31851 26996 16811 22620 6035 11610 3487 6188 28203 2180 15971 12776 16771 20323 25461 5380 6561 28225 12387 33270... подробнее

Показать сообщение отдельно
Sofochka
0 / 0 / 1
Регистрация: 19.12.2013
Сообщений: 27
19.12.2013, 21:20     Сортировка стеков
Надо отсортировать стек следующим образом:
до максимального элемента - по возрастанию;
после максимального по убыванию.

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

Просьба показать сортировку на данной программе

#include "stdafx.h"
#include "iostream"
#include "stack"
#include "conio.h"

int main () {
struct stack {
int dan;
stack* next;
stack* back;
};
stack* st = new stack; //Объявление стека структуры
st->back=NULL;
int v,c,n,max;
setlocale (LC_ALL,"Russian");
v=0;
while (v!=4){
system ("cls");
puts ("Меню");
puts ("1. Формирование стека и вывод элементов стека на экран");
puts ("2. Вычислить сумму всех элементов стека, затем изменить все элементы стека, увеличив их на значение максимального + Вывод изменёного стека");
puts ("3. Сортировка стека");
puts ("4. Выход");

printf ("Ваш выбор: ");
scanf ("%d",&v);
switch (v){

case 1: system ("cls");
puts ("Введите элементы стека (для окончания ввода введите 0): ");
n=0;c=1;
while (c!=0){
printf ("[%d] = ",n+1);
scanf ("%d",&c);
if (c!=0){
st->next=new stack; //Создание нового элемента
st->next->dan=c; //Занесение в новый элемент введёного числа
st->next->back=st; //Днищем следующего элемента является текущий элемент
st=st->next; //Переход к следующему элементу (указателю)
st->next=NULL; //Последний элемент является вершиной
n++;
}
}

puts ("Сформированный стек: ");
n=1;
while (st->back!=NULL) //Вывод до последнего элемента
{
printf("[%d] = %d\n",n,st->dan);
st=st->back; //Переход к следующему элементу
n++;
}
while (st->next!=NULL){ //Возвращение обратно к вершине стека
st=st->next;}
getch();
break;

case 2:
system ("cls");
c=0;max=0;
while (st->back!=NULL){
c+=st->dan;
st=st->back;}
printf ("Сумма элементов стека = %d",c);

while (st->next!=NULL){ //Возвращение обратно к вершине стека
st=st->next;}

while (st->back!=NULL)
{
if (st->dan>max) max=st->dan;
st=st->back;
}
printf ("\nМаксимальный элемент стека = %d",max);

while (st->next!=NULL){ //Возвращение обратно к вершине стека
st=st->next;}

while (st->back!=NULL){
st->dan*=max;
st=st->back;}


printf ("\nСодержимое стека: \n");
while (st->next!=NULL){ //Возвращение обратно к вершине стека
st=st->next;}
n=1;
while (st->back!=NULL) //Вывод до последнего элемента
{
printf("[%d] = %d\n",n,st->dan);
st=st->back; //Переход к следующему элементу
n++;
}

getch();
break;

case 3:
system ("cls");
while (st->next!=NULL){ //Возвращение обратно к вершине стека
st=st->next;}
n--;
int *mas = new int [n];
n=0;
while (st->back!=NULL){
mas[n]=st->dan;
n++;
st=st->back;}

for (int i=0;i<n;i++){
for(int j=0;j<n-i-1;j++){ // внутренний цикл прохода
if (mas[j]>mas[j+1]){
c=mas[j];
mas[j]=mas[j+1];
mas[j+1]=c;}
}
}

while (st->next!=NULL){ //Возвращение обратно к вершине стека
st=st->next;}

n=0;
while (st->back!=NULL){ //Заносим отсортированные элементы обратно в стек
st->dan=mas[n];
n++;
st=st->back;}

while (st->next!=NULL){ //Возвращение обратно к вершине стека
st=st->next;}

n=1;
while (st->back!=NULL) //Вывод до последнего элемента
{
printf("[%d] = %d\n",n,st->dan);
st=st->back; //Переход к следующему элементу
n++;
}

getch();
break;

} //Закрытие switch
} //Закрытие while основного меню
} //End Основного Тела программы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru