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

Двунаправленный линейный список. Поиск с барьером - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать Очередь. Циклический список. Удалить указанный элемент и все предшествующие http://www.cyberforum.ru/cpp-beginners/thread900307.html
Реализовать Очередь. Циклический список. Удалить указанный элемент и все предшествующие. Помогите пожалуйста очень срочно надо. Спасибо заранее.
C++ Массивы,прокомментировать Здравствуйте,нужна ваша помощь.Нужно прокомментировать код С++ задачи на массивы. Условие задачи - Дан целочисленный массив размерности n. "Сожмите" массив, выбросив из него каждый второй элемент. (Примечание: Дополнительный массив не использовать.) #include "stdafx.h" #include <iostream> int _tmain(int argc, _TCHAR* argv) { int n; http://www.cyberforum.ru/cpp-beginners/thread900305.html
C++ Вычислить значение первых 15 элементов геометрической прогрессии
вычислить значение первых 15 элементов геометрической прогрессии, когда известен первый элемент а = 2 и ее знаменатель g = 1.5.Наступний элемент * геометричноq прогрессии образуется умножением предыдущего на знаменатель прогрессии (зделать масивами без использования Using namespase std)
Цифровой корень C++
Найдите цифровые корни всех симметричных чисел, которые принадлежат интервалу (10000, 100000).
C++ Задана строка. Подсчитать количество символов арифметических операций (*, +, -, /) в заданной строке и дополнить строку слово шифра группы http://www.cyberforum.ru/cpp-beginners/thread900291.html
Дано строку. Подсчитать количество символов арифметических операций (*, +, -, /) в заданной строке и дополнить строку слово шифра группы.
C++ Дана квадратная матрица A[N,N]. Записать на место отрицательных элементов матрицы нули ,а на место положительных единицу. Вывести на на печать нижнюю Дана квадратная матрица A. Записать на место отрицательных элементов матрицы нули ,а на место положительных единицу. Вывести на на печать нижнюю треугольную матрицу в общепринятом виде. подробнее

Показать сообщение отдельно
pcslavqa
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 11

Двунаправленный линейный список. Поиск с барьером - C++

13.06.2013, 09:55. Просмотров 498. Ответов 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
82
83
#include <stdlib.h>
#include <iostream.h>
 
struct Node       //Структура являющаяся звеном списка
 {
     int x;     //Значение x будет передаваться в список
     Node *Next,*Prev; //Указатели на адреса следующего и предыдущего элементов списка
 };
 
 class List   //Создаем тип данных Список
 {
     Node *Head,*Tail; //Указатели на адреса начала списка и его конца
 public:
     List():Head(NULL),Tail(NULL){}; //Инициализируем адреса как пустые
     ~List(); //Деструктор
     void Show(); //Функция отображения списка на экране
     void Add(int x); //Функция добавления элементов в список
 };
 
List::~List() //Деструктор
 {   
     while (Head) //Пока по адресу на начало списка что-то есть
     {
         Tail=Head->Next; //Резервная копия адреса следующего звена списка
         delete Head; //Очистка памяти от первого звена
         Head=Tail; //Смена адреса начала на адрес следующего элемента
     }
 }
 
 void List::Add(int x)
 {
   Node *temp=new Node; //Выделение памяти под новый элемент структуры
   temp->Next=NULL;  //Указываем, что изначально по следующему адресу пусто
   temp->x=x;//Записываем значение в структуру
 
   if (Head!=NULL) //Если список не пуст
   {
       temp->Prev=Tail; //Указываем адрес на предыдущий элемент в соотв. поле
       Tail->Next=temp; //Указываем адрес следующего за хвостом элемента
       Tail=temp; //Меняем адрес хвоста
   }
   else //Если список пустой
   {
       temp->Prev=NULL; //Предыдущий элемент указывает в пустоту
       Head=Tail=temp; //Голова=Хвост=тот элемент, что сейчас добавили
   }
 }
 
 void List::Show()
 {
//ВЫВОДИМ СПИСОК С КОНЦА
     Node *temp=Tail;
      //Временный указатель на адрес последнего элемента
     while (temp!=NULL) //Пока не встретится пустое значение
     {
     cout<<temp->x<<" "; //Выводить значение на экран
     temp=temp->Prev; //Указываем, что нужен адрес предыдущего элемента
     }
     cout<<"\n";
 
 //ВЫВОДИМ СПИСОК С НАЧАЛА
     temp=Head; //Временно указываем на адрес первого элемента
      while (temp!=NULL) //Пока не встретим пустое значение
     {
     cout<<temp->x<<" "; //Выводим каждое считанное значение на экран
     temp=temp->Next; //Смена адреса на адрес следующего элемента
     }
 
 }
 
 
int main ()
{
 system("CLS");
 List lst; //Объявляем переменную, тип которой есть список
 lst.Add(4); //Добавляем в список элементы
 lst.Add(1);
 lst.Add(3);
 lst.Add(2);
 
 lst.Show(); //Отображаем список на экране
  system("PAUSE");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru