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

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

Восстановить пароль Регистрация
 
Boss093
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 25
03.06.2013, 22:55     Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию) #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;
}
Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию).Если можно с подробным описанием алгоритма действий в программе.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 22:55     Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию)
Посмотрите здесь:

C++ получить масссив случайных чисел из 1000 элементов по возрастанию/убыванию
C++ в зависимости от четности/нечетности отсортировать элементы матрицы по убыванию/возрастанию
C++ Найти максимальный элемент. Отсортировать предшествующие ему элементы по убыванию, а следующие за ним элементы по возрастанию.
Отсортировать строки массива целых чисел по убыванию. C++
Cгенерировать одномерный массив из 10 чисел,отсортировать его по возрастанию или убыванию C++
Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию C++
Отсортировать по убыванию элементы массива слева от случайного числа, и справа - по возрастанию. C++
C++ Отсортировать чётные элементы по возрастанию, а нечётные по убыванию

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shurikspk
 Аватар для shurikspk
396 / 217 / 34
Регистрация: 10.02.2013
Сообщений: 780
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
    }
    }
}
Yandex
Объявления
03.06.2013, 23:38     Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию)
Ответ Создать тему
Опции темы

Текущее время: 12:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru