Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 12:50   #1
Aziret
 
Регистрация: 10.06.2012
Сообщений: 5
По умолчанию visual studio c++ Линейные двусвязные списки

моя программа должна удалять все гласные буквы из списка
Код:
#include <stdio.h>
#include <conio.h>
#include <iostream>
struct node 
{
int g; 
node *rlink, *llink; 
};
void llist(node *left)
{
node *k = left;
while (k != NULL)
{
printf("%c", k->g);
k = k->rlink;
}
}
void rlist(node *rigth)
{
node *k = rigth;
while (k != NULL)
{
printf("%c", k->g);
k = k->llink;
}
}
void main()
{
node *k,*q, 
*left, *rigth; 
char w; 

printf("vvedite simvol");
scanf("%c", &w);
k = new node; 
k->g = w; 
k->rlink = NULL;
k->llink = NULL;
rigth = k;
q = k; 
printf("vvedite sleduwii simvol:");
scanf("%c", &w);
while (!feof(stdin))
{
k = new node;
k->g = w;
k->rlink = q;
q->llink = k; 
q = k;
printf("vvedite sleduwii simvol:");
scanf("%c", &w);
}
q->llink = NULL;
left = q;
puts("sleva napravo ");
llist(left);
puts("sprava nalevo");
rlist(rigth);
char  c[]="auio";
node *l; // Указатель на предыдущий узел
l = k = left;
while (k != NULL)
{
	if (strchr(c, k->g))
{
if (k == left)
{ //Удаление самого левого
q = k;
left = k->rlink;
left->llink = NULL;
l = k = left;
delete q;
}
else if (k == rigth)
{ // Удаление самого правого
q = k;
rigth = k->llink;
rigth->rlink = NULL;
k = NULL;
delete q;
}
else
{ //Удаление из середины списка
q = k;
l->rlink = k->rlink;
k->rlink->llink = l;
delete q;
k = l->rlink;
}
}
else // Если не надо удалять, то вперед
{
l = k;
k = k->rlink;
}
}
if(rigth==NULL || left==NULL)
	printf("stek pustoi");
else
{
	puts("sleva napravo ");
	llist(left);
	puts("sprava nalevo");
	rlist(rigth);
}
	
getch();
}
если я буду вводить только гласные буквы, на экран должна выйти "stek pustoi"... но не получается...
Aziret вне форума Ответить с цитированием
Старый 10.06.2012, 14:45   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

В чем ошибка?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 10.06.2012, 15:22   #3
Aziret
 
Регистрация: 10.06.2012
Сообщений: 5
По умолчанию

я тоже не могу понять)) пусть мы будем вводить только гласные буквы например "a, i, u", на экран должна выйти
Код:
stek pustoi
...
помоему у меня "right" и "left" не обнуляется...
Aziret вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязные списки. Visual C++ Nursi Visual C++ 2 10.06.2012 15:22
Двусвязные списки aidar9012 Помощь студентам 6 28.06.2010 02:05
Двусвязные линейные списки (С++) valdemar593 Помощь студентам 2 29.03.2010 10:43
Visual Studio - Задача по структурам(Списки) opsi Помощь студентам 1 01.06.2009 10:04
Двусвязные списки Serp Помощь студентам 3 14.04.2009 16:13