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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Посчитать в тексте количество слов с заглавной буквы http://www.cyberforum.ru/cpp-beginners/thread290304.html
сколько в заданом тексте собственных имен? :-|немогу написать код в лабе.. в итоге программа должно посчитать количество слов с большой буквы помогите кто сможет:tender:
C++ Найти наименьший положительный элемент последовательности Дана последовательность N целых чисел. Найти наименьший положительный элемент этой последовательности. Входные данные Вы вводите количество чисел N, и N целых чисел - элементов этой последовательности. Количество чисел не превышает 10000, каждый элемент последовательности не превышает по абсолютной величине 1000. Выходные данные Вывести на экран искомый элемент. Если в последовательности... http://www.cyberforum.ru/cpp-beginners/thread290291.html
C++ Алгоритм Флойда (теория графов)
код: int** floid(int** W,int n){ vector<int**>D(n); int** A=new int*; for(int i=0;i<n;i++){ A=new int; for(int j=0;j<n;j++) A=1; } for(int i=0;i<n;i++){
C++ типы данных bool
уважаемые подскажите почему не компилирует функция "bool shod " можно ли ее чем заминить и вообще что такое shod ?
C++ Передача указателя на метод в функцию http://www.cyberforum.ru/cpp-beginners/thread290279.html
Подскажите плиз. Есть некий класс и в нём метод: ... DWORD WINAPI func(LPVOID lParam) { ... return 1; } metod() {
C++ По некоторому количеству строк (не более N) найти пары строк с общим словом По некоторому количеству строк (не более N) найти пары строк с общим словом. помогите, пожалуйста. слишком быстро перескочили и со строками очень туго.. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание. подробнее

Показать сообщение отдельно
olleg90
 Аватар для olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
09.05.2011, 19:16     Создать двусвязный список символов
щас напишу......

Добавлено через 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();
}
 
Текущее время: 21:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru