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

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

Войти
Регистрация
Восстановить пароль
 
Отс1993
2 / 2 / 1
Регистрация: 23.04.2012
Сообщений: 15
#1

Двунаправленный динамический список - C++

02.06.2012, 13:51. Просмотров 304. Ответов 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
#include <cstdlib>
#include <iostream>
 
using namespace std;
struct node;
typedef node *ref;
struct node{ref right; 
ref left;
 char dat;};
bool seeklist(ref list,char a,ref &p,int &k);
 
void outn(ref &p,ref list);
int main(int argc, char *argv[])
{
    ref list=NULL, p=NULL;
 list=new node;
 (*list).right=NULL;
 (*list).left=NULL;
 p=list;
 cout<<"введите последовательность, заканчивающуюся точкой: \n";
 do{
 (*p).right=new node;
 p->right->left=p;
 p=p->right;
 cin>>p->dat;
 }while(p->dat!='.');
 p->right=NULL;
 Out(p,list);
 cout<<"\n";
 cout<<"\nВведите элемент,2-е вхождение которого будет удалено: ";char s;int i;
    cin>>s; p=list->right;
    if (seeklist (list,s,p,i)) 
          {
                 int k=1;
                 p=p->right;
                 do
                {
                if (p->dat==s)
                {
                 k++;
                 if (k==2)
                 dellistc (p);
                }
                p=p->right;
          }
          
          while (p->right!=NULL);
          }
      outn(p,list);    
    system("PAUSE");
    return EXIT_SUCCESS;
}bool seeklist(ref list,char a,ref &p,int &k)
{
     bool sig=false;
     k=1;
     p=list->right;
     while ((p->right!=NULL)&&(!sig))
     {
           if (p->dat==a)
           sig=true;
           else {
                p=p->right;
                k++;
                };
     }
     return sig;
}
void outn(ref &p,ref list)
{
   p=list;
    while(p->right!=NULL){
 cout<<p->right->dat;
p=p->right;
}
cout<<"\n";
}void dellistc(ref &p)
{
    p->left->right=p->right;
     p->right->left=p->left;
     delete p;
}
И почему то после ввода все виснет(((помогите косяк найти

Добавлено через 22 минуты
ладно....уже переделал....изврат но потянет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 13:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двунаправленный динамический список (C++):

Динамический двунаправленный список - C++
Задача: Создать динамический двунаправленный список, с использованием функции malloc, осуществить функции добавление элемента(вставка перед...

Двунаправленный динамический список - C++
Есть такое задание (Множества А и В целых чисел, взятых из файлов a.dat и b.dat, представлены двунаправленными динамическими списками с...

Динамический двунаправленный список - C++
Помогите! Нужно создать Динамический двунаправленный список и выполнить операцию: Добавление элемента в середину списка после...

Создать связный динамический список двунаправленный и в нем обеспечить подсчет элементов - C++
Создать связный динамический список двунаправленный и в нем обеспечить подсчет элементов и найти минимальный элемент. Это идет как одно...

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

Двунаправленный список - C++
Чемпион мира по футболу. Страна, год последней победы, число побед. Сортировка по названию. Вычисление среднего числа титулов всех...

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

Двунаправленный список - C++
Вставка элемента в список. Удалениеэлемента из списка Сортировка списка. Поиск элемента в списке.Объединение двух списков Пересечение двух...

Двунаправленный список - C++
Как в этом списке поменять ввод элементов с ручного на рандомный, помогите пожалуйста? #include &lt;iostream.h&gt; struct tochd { ...

Двунаправленный список - C++
Вот в примере елем в список добавл в конец, а как сдел чтобы они добавл в начало ? void List_2::Insert_end_list_2(int data) { Plist...

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


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

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

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