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

Двусвязный список - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция и массив http://www.cyberforum.ru/cpp-beginners/thread272392.html
Добрый день, Уважаемые! У меня возникла проблема с задачей на функции, с использованием массивов: Написать функцию, распечатывающую произвольный массив из N элементов в обратном порядке. Пожалуйста, подскажите решение. Заранее большое спасибо!
C++ замена слов Помогите пожалуйста решить следующее задание! Заранее благодарен. Условие задания: ТЕКСТ, Слова, которые надо заменять и подстроку выберите любую В тексте все слова заданной длины заменить указанной подстрокой, длина которой может не совпадать с длиной заменяемого слова. ТРЕБОВАНИЯ: 1. При выполнении создать и использовать классы Word и Sentence. 2. При кодировании должны быть... http://www.cyberforum.ru/cpp-beginners/thread272386.html
Выполнение действий через некоторое время C++
хочу сделать так чтобы на экран выводились всякие символы через некторое время. ну например: сначала на экран выводится П черех несколько секунд Р еще через время И и так далее. как это можно реализовать?
C++ С++ и псевдонимы типов
Вопрос не совсем по программированию, если оффтоп - заранее извиняюсь. Сам вопрос: зачем в Windows библиотеках для C++ (MVS) сделано огромное количество псевдонимов для одних и тех же типов?
C++ Маткад & Плюсы интеграция http://www.cyberforum.ru/cpp-beginners/thread272366.html
Приветствую хранителей данного форума) Помогите интегрировать расчет маткада в плюсы, может где есть, что-то наподобие гайда или статейки. Раньше с такими задачами не сталкивался, так что за любую помощь очень благодарен.
C++ динамический массив С клавиатуры вводятся два целых числа х,у. Создать двумерный динамический массив размерами х,у заполнить массив с помощью генератора случ чисел и сложить значение ячеек в шахматном порядке подробнее

Показать сообщение отдельно
Lostmen
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 13
08.04.2011, 14:21     Двусвязный список
Люди помогите пожалуйста исправить код а то при вводе списка из 1 элемента который и нужно удалить выводиться ошибка
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
124
125
126
127
128
129
130
131
132
133
#include <iostream>
using namespace std;
 struct stack
  {
    int info;
    stack *rlink, *llink;
  };
 
int F(stack *k, int t)
{
    if(k->info == t)
        return 1;
}
/*Функция вывода слева напpаво*/
 
int lstack(stack *left)
{
  stack *k = left;
  if (k != NULL)
  {
    while (k != NULL)
    {
        cout<<k->info<<" ";                         
        k = k->rlink;
    }
  }
}
 
/*Функция вывода спpава налево*/
 
void rstack(stack *rigth)
{
    stack *k = rigth;
    if (k != NULL)
    {
        while (k != NULL)
        {
            cout<<k->info<<" ";                              
            k = k->llink;
        }
    }
}
 
void main()
{
  setlocale(LC_ALL, "Russian_Russia.1251");
  stack *top, *q, *k, *left, *rigth;
  int w,t;
  cout<<"Введите x:";                                  
  cin>>t;                                                     
  top = NULL;
 
  cout<<"Введите элемент списка:";                                
  cin>>w;                                                    
  k = new stack; 
  k->info = w; 
  k->rlink = NULL;
  k->llink = NULL;
  rigth = k;
  q = k; 
 
  cout<<"Введите следующий элемент списка:";                      
  cin>>w;                                                           
  while (!feof(stdin))
  {
    k = new stack;
    k->info = w;
    k->rlink = q;
 
    /*Связь нового узла с предыдущим*/
 
    q->llink = k; /*Связываем предыдущий узел с вновь созданным*/
    q = k;
    cout<<"Введите следующий элемент списка:";                           
    cin>>w;                                                               
  }
 
  /* Вывод стека */
  q->llink = NULL;
  left = q;
  cout<<"\nSleva napravo:\n";                                              
  lstack(left);
  cout<<"\nSpravo nalevo:\n";                                                  
  rstack(rigth);
  /* Удаление узлов стека*/
 
  stack *l;  /*Указатель на предыдущий узел*/
  l = k = left;
 
  while (k != NULL)
  {
    if (F(k,t)== 1)
    { 
      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;
    }
  }
  cout<<"\n_______________________\n";                      
  cout<<"\n~{ POSLE UDALENIYA "<<t<<" }~\n";                           
  cout<<"\nSleva napravo:\n";                                 
  lstack(left);
  cout<<"\nSprava nalevo;\n";
  rstack(rigth);
  cout<<"\n\007";                                             
  system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru