Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 06.01.2012
Сообщений: 13
1

Сортировка двусвязного списка

20.02.2012, 22:02. Показов 3028. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать программу учета продажи и поступления товаров в магазин. Перечень товаров, имеющихся в магазине, оформить в виде линейного двусвязного списка. Предусмотреть возможность сортировки товаров по цене.
Код ниже. Зависает на условии в сортировке. Правильно ли определены указатели?
Среда Borland C.


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
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
 
 
struct Element {
char Name[20];
float price;
Element *Next;
Element *Previous;
};
 
 
class list
{
Element *begin,*end;
public:
int n;
void Add(void);
void Show (void);
void Sort(void);
void Menu(void);
list(){
begin=end=NULL;
};
 
~list()
{
Element *del;
while (begin)
{
del=begin;
begin = begin->Next;
delete del;
}
};
};
 
void list::Add(void)
{ Element *part= new Element;
cin >> part->Name;
cin >> part->price;
part->Next=NULL;
if (begin==NULL)
begin=part;
else
{
end->Next=part;
part->Previous=end;
}
end=part;
}
 
void list::Show(void)
{ Element *part=begin;
while (part!=NULL)
{
cout<<"\n "<<part->Name;
cout<<"\n "<<part->price;
cout<<"\n";
part=part->Next;
}
if(begin==NULL) cout<<"\n Empty \n";
getch();
}
 
void list::Sort(void)
{ Element *count,*prev;
int i=0,j;
count=begin;
prev=begin;
while (count->Next!=NULL)
{
for (j=0;j<n-i-1;j++)
if (count==begin&&(count->price >= count->Next->price))
{ prev=count;
count=count->Next;
prev->Previous=count;
prev->Next=count->Next;
count->Previous=NULL;
count->Next=prev;
}
if (count!=begin&&(count->price >= count->Next->price))
{prev=count;
prev->Previous=count->Next;
prev->Next=count->Next->Next;
count=count->Next;
count->Next=prev;}
i++;
}
getch();
}
 
 
void list::Menu(void)
{
list product;
int key;
clrscr();
do {
cout<<" 1 - Add\n"
<<" 2 - Sort*\n"
<<" 3 - Show \n"
<<" Esc - Exit \n";
 
key=getch();
switch (key) {
case 49 :
product.Add();
break;
case 50 :
product.Sort();
break;
case 51 :
product.Show();
break;
} clrscr();
} while (key!=27);
}
 
main()
{
list T;
T.Menu();
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2012, 22:02
Ответы с готовыми решениями:

"Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка
Здравствуйте! Возникла проблема с программой. Тема: &quot;Сортировка двусвязного списка путем исключения...

Сортировка двусвязного списка вставками
Добрый день, есть готовый двусвязный список. Нужно было реализовать сортировку вставками любых...

Шейкерная сортировка двусвязного списка
Здравствуйте! У меня возникла проблема с сортировкой двусвязного списка. Получилось...

Сортировка выбором двусвязного списка
Помогите пожалуйста написать функцию которая сортирует двусвязный список методом выбора Вот...

0
20.02.2012, 22:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2012, 22:02
Помогаю со студенческими работами здесь

Быстрая сортировка двусвязного списка
что не так?? void newsort(Offender_Node*first,Offender_Node*last) { ...

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

Сортировка кольцевого двусвязного списка (пузырьковая)
Доброго дня! Помогите пожалуйста разобраться с сортировкой кольцевого двухсвязного списка. У меня...

Передача параметров в функцию (сортировка двусвязного списка)
Дан работающий код (двусвязный список+сортировка его пузырьком) Нужно выделенную часть оформить в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru