С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

26.04.2013, 20:04. Просмотров 350. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка списка слов (C++):

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

Дан список слов различной длины. Составить программу упорядочения списка слов: По их длине; По алфавиту - C++
Очень срочно!!!!! Дан список слов различной длины. Составить программу упорядочения списка слов: По их длине; По алфавиту.

STL: Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза - C++
Помогите написать программу!! Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза. ...

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 20:04
Привет! Вот еще темы с ответами:

Сортировка списка - C++
Здравствуйте!!! Прошу помочь мне написать алгоритм сортировки односвязного списка. Задание такое: необходимо из элементов трёх списков...

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

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

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


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

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

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