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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Boss093
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 25
#1

Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию) - C++

03.06.2013, 22:55. Просмотров 892. Ответов 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
#include <iostream>
#include <malloc.h>
using namespace std;
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
typedef struct Node// указатель на стек
{
char value;
struct Node*next;
} NODE, *pNODE;
 
typedef struct stack// сам стек
{
pNODE begin;
int len;
} STACK,*pSTACK;
 
pSTACK createstack (void){ //Создание стека
pSTACK pS;
pS=(pSTACK)malloc(sizeof(STACK)); //выделение памяти для стека
pS->begin=NULL;//первому эл-ту присваевается 0
pS->len=0;//возвращение самого стека
return pS;
}
 
int isEmpty (pSTACK pS){ //Проверяка наличия элементов в стеке
if (pS->begin) return 0; //если какой то эл-т есть то возвр 0
else return 1;
}
 
void push (pSTACK pS,char c){ //Добавление нового элемента
pNODE p=(pNODE) malloc (sizeof(NODE));//выд-ие памяти под 1 эл-т
p->value=c;
p->next=pS->begin;//изменение указателя на след пустой элемент
pS->begin=p;//выделение памяти след эл-ту
pS->len++;
}
 
char pop (pSTACK pS){ //Извлечение элементов
pNODE p=pS->begin;//указатель на элемент стека
char c=p->value;//присваивается значение эл-та
pS->begin=p->next;//разрыв связи с удаляемым эл-том
free(p);//отчистка памяти
pS->len--;
return c;
}
 
void print (pSTACK pS){ //Вывод содержимого стека
pNODE p=pS->begin;
if (isEmpty(pS)) cout<<"STACK CLEAR";
while (p){
cout<<p->value<<" "; //Переход к следующему элементу
p=p->next;
}
cout<<endl;
}
 
void clearStack (pSTACK pS){ //Очистка стека
pNODE p=pS->begin;//указатель на элемент стека
while (p) {//до тех пор пока р что то содержит удаляется по одному эл-ту
p=p->next;//разрыв связи с удал элементом
pop(pS);
}
free(pS);
}
 
int main(int argc, char *argv[]) {
int i;
pSTACK pS=createstack();//ф-я созд стека
char c;
for (c='a';c<='z';c++)
push (pS,c);//введение в массив элентов
print(pS);
while (!isEmpty(pS)){//пока стек не пуст удаляется 1 элемент и выводится вест стек
pop(pS);
print(pS);
}
return 0;
}
Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию).Если можно с подробным описанием алгоритма действий в программе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 22:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию) (C++):

Найти максимальный элемент. Отсортировать предшествующие ему элементы по убыванию, а следующие за ним элементы по возрастанию. - C++
Дан одномерный массив целых чисел, содержащий 20 различных элементов. Найти максимальный элемент. Отсортировать предшествующие ему элементы...

Отсортировать чётные элементы по возрастанию, а нечётные по убыванию - C++
Вот условие(могу кое где ошибаться в правильности постановки задачи) Составить одномерный массив, в котором бы выводилось 20(или более)...

Отсортировать четные элементы массива по возрастанию, а нечетные по убыванию - C++
По четным по возрастанию по нечетным по убыванию. Пробую пузырьковую сортировку не получается(

Отсортировать четные элементы массива по возрастанию, а нечетные по убыванию - C++
помогите найти ошибку.не верно сортирует. #include &lt;iostream&gt; #include &lt;math.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; ...

получить масссив случайных чисел из 1000 элементов по возрастанию/убыванию - C++
1)надо получить масссив случайных чисел из 1000 элементов по возрастанию. 2)надо получить масссив случайных чисел из 1000 элементов по...

В зависимости от четности/нечетности отсортировать элементы матрицы по убыванию/возрастанию - C++
Здравствуйте! Помогите пож-та написать код: Если столбец матрицы четный - отсортировать элементы по возрастанию, нечетный - по...

1
shurikspk
398 / 219 / 34
Регистрация: 10.02.2013
Сообщений: 781
03.06.2013, 23:38 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int* new_memory(int **str, int *kol_elem)  //создание функции выделения памяти
{
    if(*str!=NULL)   // проверка пуст ли указатель на динамический массив
    printf("Сн ч л  освободите п мять");
    else
    {
        kol_elem=(int*) malloc(sizeof(int));  // создание динамической переменной под количество елементов массива
    printf("Введите количество елементов: ");
        scanf("%d", kol_elem);   // их ввод
 
    *str = (int*)malloc(sizeof(int)*(*kol_elem));  // создание самого массива
          for (int i=0; i<(*kol_elem); i++)
             str[i]=rand()% 100;  // заполняем массив элементами до 100
    }
    return kol_elem;  // возврат указателя на количество элементов
}
это создание массива

Добавлено через 15 минут
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
typedef bool (*sravnen) (int, int);  // указатель на функцию сравнения 2 чисел
/*сравнение 2 элементов*/
bool sr_vozr(int value_1, int value_2)  //функция сравнения 2 чисел по возростанию  value_2<value_1
{
    if(value_2<value_1)
        return true;
    else
        return false;
}
 
/*сравнение 2 элементов*/
bool sr_ubivan(int value_1, int value_2) //функция сравнения 2 чисел по убыванию value_2>value_
{
    if(value_2>value_1)
        return true;
    else
        return false;
}
 
/*сортировка методом простого включения*/
void sort_kartochnaya(int* array, int kol, sravnen point)  //функция которая содержит во входных параметрах массив, его длину, метод сравнения (убывание , возростание) 
{
    if(array==NULL)
        printf("Массив пуст или не создан! Сортировка невозможна!!!\n");
    else
    {
    int temp;  // временная переменая для переписи элементов 
    for(int i=1; i<kol; i++) // идем по массиву с первого элем
    {
        temp=array[i]; // присваеваем темпу і элем 
        int j=i-1; //  объявляем j и присваем ему i-1 индекс i-1
        do 
        {
            if(point(array[j], temp)==1)  // сравнение элементов по индексам i и j
                {
                    array[j+1]=array[j]; //в элем j+1 то есть i запишем элем j
                    j--;  //  уменьшим j
                }
                else 
                    break;
 
        }
        while(j>=0); // выходим из цыкла когда  (j>=0) то есть начало массива
        array[j+1]=temp;  //  в элем j+1  запишем элем i
    }
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 23:38
Привет! Вот еще темы с ответами:

Отсортировать по убыванию элементы массива слева от случайного числа, и справа - по возрастанию. - C++
Дан массив из 20 целых чисел со значениями от 1 до 20. Необходимо: написать функцию, разбрасывающую элементы массива...

Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию - C++
Значит есть одномерный массив из 10 чисел. Заполнен случайными значениями. Числа расположенные на нечетных позициях необходимо...

Отсортировать элементы массива, находящиеся слева от заданного числа по убыванию, а справа по возрастанию - C++
Есть задание: Дан массив из 20 целых чисел со значениями от 1 до 20. Необходимо: 1. написать функцию, разбрасывающую элементы массива...

Отсортировать строки массива целых чисел по убыванию. - C++
Отсортировать строки массива целых чисел по убыванию.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru