Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
PhoeniX_4
8 / 8 / 3
Регистрация: 01.06.2011
Сообщений: 167
1

Сортировка стека методом пузырька

18.01.2012, 04:11. Просмотров 1101. Ответов 6
Метки нет (Все метки)

Привет всем. Народ помогите плиз! Есть программа "сортировка стека" а в конце есть блок где написана сортировка "методом перестановки". Помогите плиз изменить его на "метод пузырька"

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
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
#define STACK struct stack
STACK {int body;
       STACK*next;};
void PUSH(STACK**st);
void ST_LIST(STACK*st);
int POP(STACK**st);
void ST_SORT(STACK**st);
main()
{STACK*st=NULL, *new_st, *old_st, *tmp_st;
 int new_body, old_body, choice, tmp_body, ch;
 do{
    printf("\n Action menu:");
    printf("\n1 - PUSH");
    printf("\n2 - POP");
    printf("\n3 - LIST");
    printf("\n4 - SORT");
    printf("\n5 - OUT");
    printf("\nInput Choice=");
    scanf("%d", &choice);
    switch(choice)
    {case 1: {PUSH(&st); break;};
     case 2:{old_body=POP(&st);
             printf("\n Body from STACK: %d", old_body);
             getch(); break;};
     case 3: {ST_LIST(st); getch(); break;};
     case 4: {ST_SORT(&st); getch(); break;};
     }}
 while(choice!=5);
      }
    
    void PUSH(STACK**st)  
    {int new_body;
     STACK*new_st=(STACK*)malloc(sizeof(STACK));
     if(new_st!=NULL)
     {printf("\nInput INT in Stack=");
      scanf("%d", &new_body);
      new_st->body=new_body;
      new_st->next=*st;
      *st=new_st;
      } printf("%d", new_body);
     }
     
     int POP(STACK**st)
      {int old_body=32766;
      STACK*old_st;
      if(*st==NULL)
        {printf("\n Stack is EMPTY");}
        else{old_st=*st;
       old_body=old_st->body;      
       *st=(*st)->next;
       free(old_st);}
      return old_body;}
      
     void ST_LIST(STACK*st)
     {STACK*tmp_st;
     int ch;
     if(st==NULL)
     {printf("\n Stack is EMPTY");}
     else{tmp_st=st;
           ch=0;
           printf("\n Order Value");
           while(tmp_st!=NULL)
           {ch=ch+1;
            printf("\n %d : %d", ch, tmp_st->body);
            tmp_st=tmp_st->next;
                              }               
          }
      }
 
 
 
      void ST_SORT(STACK**st)
      {STACK*st1;
       STACK*st2;
       int tmp;
       if(*st==NULL)
        {printf("\n Stack is EMPTY");}
        else{
             st1=*st;
             do{st2=st1->next;
              while(st2!=NULL){
                               if(st1->body>st2->body)
                  {tmp=st1->body;
                  st1->body=st2->body;
                  st2->body=tmp;}
                  st2=st2->next;
                  }
            st1=st1->next;
              }while(st1!=NULL);}
            }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2012, 04:11
Ответы с готовыми решениями:

Сортировка методом пузырька
Здравствуйте, напишите, пожалуйста, такую программу. Напишите программу, сортирующую массив...

Сортировка по убыванию (методом пузырька)
Задание: добавить сортировку слов по убыванию (по методу пузырька). #include &quot;stdafx.h&quot;...

Сортировка массива методом пузырька
Задание: объявляем одномерный массив целого типа, размера не менее 15 этот массив необходимо...

Сортировка по убыванию методом пузырька
Добрый вечер! Очень нужна помощь. Задание такое: даны два массива. Массив А состоит из N элементов...

Сортировка методом Хаора и пузырька
Пропустил тему и понятия не имею как делать.

6
alkagolik
Заблокирован
18.01.2012, 04:40 2
Цитата Сообщение от PhoeniX_4 Посмотреть сообщение
Привет всем. Народ помогите плиз! Есть программа "сортировка стека" а в конце есть блок где написана сортировка "методом перестановки". Помогите плиз изменить его на "метод пузырька"
мужЫГ, давай мы еще ВАМ грудь (трусы) разрисуем всем кагалом. ГовориТе что непонятно.
0
PhoeniX_4
8 / 8 / 3
Регистрация: 01.06.2011
Сообщений: 167
18.01.2012, 05:46  [ТС] 3
Непонятна сортировка сама...в конце блок я специально отодвинул чтобы показать где именно сортировка происходит. Там метод перестановки. Я не могу понять как он работает...сам текст программы данного метода непонятен. А мне надо сделать метод пузырька...а так как в стеке с методом перестановки не могу разобраться то с "пузырьком" и подавно...как то так
0
Nameless One
Эксперт С++
5793 / 3442 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
18.01.2012, 05:59 4
C
1
#define STACK struct stack
use typedef, Luke
1
alkagolik
Заблокирован
18.01.2012, 06:10 5
PhoeniX_4, мужЫГ, я тебя сейчас разметаю в щепки. Не потому что я злой, а потому что ты не хочешь понимать простых наречий. ЩИТО такое?
Цитата Сообщение от PhoeniX_4 Посмотреть сообщение
Непонятна сортировка сама...
Цитата Сообщение от PhoeniX_4 Посмотреть сообщение
Там метод перестановки. Я не могу понять как он работает...
ЩИТО тебе не понятно?
Цитата Сообщение от PhoeniX_4 Посмотреть сообщение
Я не могу понять как он работает...сам текст программы данного метода непонятен.
ЩИТО тебе не понятно?
Цитата Сообщение от PhoeniX_4 Посмотреть сообщение
А мне надо сделать метод пузырька...
чтобы папа не дал по попе после институтских пар? чего тебе надо?
Цитата Сообщение от PhoeniX_4 Посмотреть сообщение
а так как в стеке с методом перестановки не могу разобраться то с "пузырьком" и подавно...как то так
вообще не понял. спишу на то что пьяный... Есть стек, его надо отсортировать... в чем сложность? (что непонятно?)
0
PhoeniX_4
8 / 8 / 3
Регистрация: 01.06.2011
Сообщений: 167
18.01.2012, 06:20  [ТС] 6
Мне непонятен блок в конце программы где происходит сама сортировка методом перестановки
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void ST_SORT(STACK**st)
      {STACK*st1;
       STACK*st2;
       int tmp;
       if(*st==NULL)
        {printf("\n Stack is EMPTY");}
        else{
             st1=*st;
             do{st2=st1->next;
              while(st2!=NULL){
                               if(st1->body>st2->body)
                  {tmp=st1->body;
                  st1->body=st2->body;
                  st2->body=tmp;}
                  st2=st2->next;
                  }
            st1=st1->next;
              }while(st1!=NULL);}
этот!
0
Арсенал
144 / 66 / 14
Регистрация: 30.12.2011
Сообщений: 137
18.01.2012, 10:19 7
Алгоритмы сортировок

Во 2-ом посте описаны сортировки
2
18.01.2012, 10:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 10:19

Сортировка одномерного массива методом пузырька
Здравствуйте. Я начинающий пользователь языка Си. Мне нужна очень ваша помощь. У меня никак не...

Сортировка структуры по одному из полей методом пузырька
Всем привет! Прошу помочь мне в написании сортировки по опр. полю,например, по марке. Вот...

Сортировка методом пузырька (нужны комментарии к коду)
for (int i=n-1; i&gt;=0; i--) // метод пузырька { for (int j=0; j&lt;i; j++) { if (x...


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

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

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