0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 16
1

Однонаправленный список программа удаляет повторяющиеся слова

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

Сам список сделан нормально, а вот функция void Ne_povtor(List **begin) не работает, она тупо не заходит в условие if() Не знаю что и делать. Прошу помощи, форумчане)

#include <iostream>
#include <windows.h>
using namespace std;

struct List
{
char key[12];
List *next;
};

void Print(List *b)
{
List *print = b;
while(print!=0)
{
cout<<print->key<<"->";
print = print->next;
}
cout<<"NULL";
}

void Vvod(List **begin)
{
//char key[12];
*begin = new List;
int n=0;
cin>>(*begin)->key;
if ( !strcmp( ".", (*begin)->key ) )
{
delete begin;
begin = NULL;
}

List *t = *begin;
while(t)
{

List *end = new List;
cin >> end->key;
if ( !strcmp( ".", end->key ) )
{
delete end;
end = NULL;
}
t->next = end;
t = end;
n++;
}
}

void Free(List **begin)
{
if(*begin == NULL) return;
List *p = *begin;
List *t;
while(p)
{
t = p; //чтобы не потерять адрес переменной p мы присваеваем ее переменной t
p = p->next;
delete t;
}
*begin = NULL; //присвоим списку значение 0
}

void Ne_povtor(List **begin)
{
char key[12];
List *t = *begin;
List *end = *begin;
//здесь сначало первый элемент сравниваем со всеми потом второй и так до конца
while(t)
{
List *t1 = t->next; //след элемент
while(t1)
{
if(t->key == t1->key)
{
end->next = t1->next;
delete t1;
return;
}
end = end->next;
t1 = t1->next;
}
t = t->next;
end = t;
t1 = *begin;
}
}

main()
{
List *begin=0;
Vvod(&begin);
Ne_povtor(&begin);
Print(begin);
Free(&begin);
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2015, 22:02
Ответы с готовыми решениями:

Переписать слова предложения в однонаправленный линейный список
Ввести с клавиатуры предложения и переписать его слова в однонаправленный линейный список ....

Программа, которая вводит текст, удаляет в нем все слова заданной длины, а оставшиеся слова выводит в алфавитн
Разработать программу, которая вводит текст, удаляет в нем все слова заданной длины, а оставшиеся...

Организовать из слов строки однонаправленный список, упорядочивая слова по алфавиту
Дана символьная строка, состоящая из слов, разделенных пробелом. Составить про-грамму, которая...

Переписать слова предложения в однонаправленный линейный список, исключив выбранное слово
Ввести с клавиатуры предложения и переписать его слова в однонаправленный линейный список....

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

Программа удаляет все слова начинающиеся со строчной буквы (пояснить код)
Почему в этой программе нужно в islower записать именно str ? Почему 0? Программа удаляет все...

Добавить в список элемент после элемента с заданным инф.полем [Однонаправленный список]
Вообщем есть: Функция создание списка Функции вывода на экран Функция добавление элемента с...

Дана строка текста, в которой слова разделены пробелами и запятыми, вывести повторяющиеся слова
Помогите пожалуйста! Как мне найти и вывести повторяющиеся слова? П.С. При работе со строками не...

Заменить все повторяющиеся слова на S##, где ## - номер слова
Ребят, помогите плз с лабой, а то я ее уже 4 раз переписываю =( Вечно я ее сначала пишу, а потом...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru