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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
#1

Создать двусвязный список символов - C++

06.05.2011, 22:53. Просмотров 1772. Ответов 2
Метки нет (Все метки)

и удалить из него все буквы y

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

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

Создать двусвязный список - C++
Не могу разобраться с двусвязным списком. Вот код списка: #pragma once #include "ClassPhoto.h" struct Node{ Photo...

Как создать двусвязный список? - C++
Собственно... не шарю, как сделать двусвязный! односвязный вроде как получается. Двусвязный как-то и не очень :( Конструктор: list() {...

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

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

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

2
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
09.05.2011, 18:48  [ТС] #2
ну кто-нибудь...
0
olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
09.05.2011, 19:16 #3
щас напишу......

Добавлено через 10 минут
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <stdio.h>
#include <conio.h>
#include <locale.h>
 
struct node // Описание узла
{
  char g; // Информационное поле
  node *rlink, *llink; // Поля для связи с другими полями
};
 
/*_______Функция вывода списка слева напpаво_____*/
 
void llist(node *left)
{
  node *k = left;
  while (k != NULL)
  {
    printf("%c\n", k->g);
    k = k->rlink;
  }
}
 
/*_______Функция вывода списка спpава налево_____*/
 
void rlist(node *rigth)
{
  node *k = rigth;
  while (k != NULL)
  {
    printf("%c\n", k->g);
    k = k->llink;
  }
}
 
void main()
{
  node *k,*q, // Рабочие указатели
       *left, *rigth; // Левый и правый указатели
  char w; // Буферная переменная
    setlocale (LC_ALL,"");
  // Создание пеpвого узла
 
  printf("Bведите число");
  scanf("%c", &w);
  k = new node; // Выделение динамической памяти под узел
  k->g = w; // Заполнение полей узла
  k->rlink = NULL;
  k->llink = NULL;
  rigth = k;
  q = k; // Второй рабочий указатель хранит адрес предпоследнего узла
 
  /*______Построение остальных узлов_______*/
 
  printf("Bведите символ:");
  scanf("%c", &w); 
  while (!feof(stdin))
  {
    k = new node;
    k->g = w;
    k->rlink = q;
 
    // Связываем вновь созданный узел с предыдущим
 
    q->llink = k; // Связываем предыдущий узел с вновь созданным
    q = k;
    printf("Bведите символ:");
    scanf("%c", &w);
  }
 
  q->llink = NULL;
  left = q;
  puts("Слева напpаво ");
  llist(left);
  puts("Спpава налево");
  rlist(rigth);
 
 
  node *l; // Указатель на предыдущий узел
  l = k = left;
 
  while (k != NULL)
  {
    if (k->g == 'y')
    {
      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;
    }
  }
 
  puts("Вывод после удаления ");
  puts("Слева напpаво ");
  llist(left);
  puts("Спpава налево");
  rlist(rigth);
  getch();
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2011, 19:16
Привет! Вот еще темы с ответами:

Создать двусвязный список и найти в нем максимум - C++
прошу напишите пожалуйста прогу, которая создаст двусвязный список и найдёт в нем максимум

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

создать двусвязный список, найти произведение второго и последнего элемента - C++
создать двусвязный список, найти произведение второго и последнего элемента

Создать двусвязный список, содержащий целые числа. Удалить все максимальные элементы - C++
Создать двусвязный список, содержащий целые числа. Удалить все максималь* ные элементы. Например, для списка 5 2 9 1 3 7 9 2 9, результат...


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

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

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