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

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

Войти
Регистрация
Восстановить пароль
 
wse
Сообщений: n/a
#1

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

26.04.2013, 20:04. Просмотров 333. Ответов 0
Метки нет (Все метки)

Каждый элемент списка содержит динамический массив типа char {char*}. Массив хранит слово на латинице. Пользователь вводит кол-во элементов и перечисляет слова, которые нужно поместить в список.

Задача:
Упорядочить список по возрастанию, не используя дополнительных списков. То есть изменяя имеющийся.
Вывести на экран результат и последовательно удалить все элементы списка. При удалении элементов не забываем освобождать память у динамических массивов.

Алгоритм:
Реализовать функцию AddToSort(first,value). Вставка в упорядоченный список.
Начинаем со второго элемента списка, сравниваем значение с предыдущим. Если текущее значение меньше предыдущего, то вырезаем элемент из списка и вставляем, используя AddToSort.

Для сравнения строк используем strcmp(char1,char2)
Функция возвращает целочисленное значение:
- больше нуля, если первая строка больше второй;
- 0 (нуль), если строки равны;
- меньше нуля, если первая строка меньше второй.

Вот мой кодно он не работает,помогите пж. исправить)


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
#include <iostream>
#include <iomanip>
#include <locale>
#include <cstring>
using namespace std;
 
struct comp
{
char* data;
comp *next;
};
 
void AddToSort(comp *&first, char value[40]) 
{ 
comp *P = new comp;
int q=0;
while (value[q])
q++;
char*a=new char[q];
q=0;
while (value[q])
a[q]=value[q++];
a[q]=NULL;
P -> data = a;
P->next=NULL;
if(!first)
first = P;
else
if(strcmp(first -> data,value)>=0)
{
P -> next = first;
first = P;
}
else
{
comp *t = first;
while(t->next!= NULL && (strcmp(t ->next-> data,value)<0))
t = t -> next;
P->next=t->next;
t->next=P;
}
}
void delcomp(comp *&first)
{
comp *t = first;
if(first)
while (first)
{
comp*buf=first;
first=first->next;
 
delete buf;
}
}
 
void showcomp(comp *first)
{
comp *temp = first;
if(first)
while(temp)
{
cout<<temp -> data << " ";
temp = temp -> next;
}
else
cout <<"Spisok pust!"<<endl;
cout<<endl;
}
 
int main()
{ comp *Head=NULL;
int s;
char w[40];
cout<<"Vvedite s: ";
cin>>s;
for(int i = 0; i < s; i++){
cout<< "Vvedite slovo : ";
cin>>w;
AddToSort(Head, w);
}
cout<< "Gotoviy spisok: ";
showcomp(Head);
delcomp(Head);
showcomp(Head);
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 20:04     Сортировка списка слов
Посмотрите здесь:

Сортировка списка слов - C++
Помогите написать код:) Сортировка списка слов. Каждый элемент списка содержит динамический массив типа char {char*}. Массив хранит...

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

Сортировка списка - C++
Люди помогите плиз я уже не могу!! надо сортировать список!!! Останьные недоработки тоже можете указать. Вот код Жду ответов) ...

Сортировка списка - C++
Получается, что пользователь вносит книги в библиотеку, записывая имя писателя, название, год издания и тд... После чего он может...

Сортировка списка - C++
Приветствую всех! Есть небольшая проблема: не могу понять, как создать сортировку в алфавитном порядке. Вот код: void SortList() { ...

Сортировка списка - C++
Всем привет задание такое Разработать программу работы со связным списком сеансов в кинотеатре. Для каждого сеанса должна храниться...

Сортировка списка - C++
Народ нужна помощь :) Элементы списка представлены следующим образом: class Node { public: char *name; Node *next; ...

Сортировка списка - C++
Здравствуйте, не совсем понимаю как должна быть реализована сортировка вставками в деке. Что имеется на данный момент: class List...

Сортировка списка - C++
Помогите пожалуйста, нужна сортировка методом вставок односвязанного кольцевого списка, не пойму как делать. Со списками ток начал...

Сортировка списка - C++
Дан список сел и расстояния до них от города. Нужно вывести села в порядке удаленности от города. Городов до 10^8. Расстояния - целые...

Сортировка списка - C++
Всем привет) Нужно реализовать сортировку списка, линейного однонаправленного. Написал, но что-то как-то не правильно... void...

Сортировка списка - C++
Привет, всем.. Ребята помогите у подруги зачет по программированию ей надо решить задачку.. Информационное поле элемента...


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

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

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