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

Реализация дека через список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ хеш-таблица http://www.cyberforum.ru/cpp-beginners/thread185577.html
как в хеш таблице на си/си++ мне указать таблицу сегментов?(массив содержащий коды) typedef struct spis { int val; spis *next; }
C++ Построчное чтение из файла такая проблема есть фаил в нем записана информация: 10 Петров А.Л. Сон 1991 4 51 Сидоров В.О. Луна 1970 5 ....... мне нужно считать первую строчку с пробелами передать ее в функцию потом считать... http://www.cyberforum.ru/cpp-beginners/thread185571.html
C++ Как в С сделать проверку на вхождение в диапазон?
Добрый вечер! Появился вопросик. Как в С сделать проверку на вхождение в диапазон. ну например входит ли символ из чаровского массива в диапазон от '0' до '9'. или же от А до Z
C++ Функция пользователя
Ребят помогите с задачей плиз!! Функция выделяет с заданого рядка подрядок заданной длины, начиная с заданой позиции. Помогите написать прогу !!
C++ Поменять местами серию с минимальной длиной с последней серией в массиве http://www.cyberforum.ru/cpp-beginners/thread185553.html
Задан целочисленный массив размера N. Поменять местами серию с минимальной длиной с последней серией в массиве. Если минимальных серий несколько, то только первую из них. (прога не закончена.сам...
C++ Волновой алгоритм, неправильная работа при втором запуске Вероятно многие из вас видели видео по волновому алгоритму. Так вот, я завёл этот код в функцию, и у меня появилась такая проблема, что если эту функцию вызвать второй раз, то линия рисуется совсем... подробнее

Показать сообщение отдельно
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
06.11.2010, 17:30  [ТС]
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
#include <iostream.h>
 
//äåê ðåГ*ëèçîâûâГ*ГҐГІГ±Гї Гў Г¤Г*Г*Г*îì ñëó÷Г*ГҐ ÷åðåç äâóГ*Г*ГЇГ°Г*âëåГ*Г*ûé ñïèñîê
 
typedef struct deque
{
    int val;
    deque *prev,*next;
};
 
deque *head=0,*tail=0;
 
void insertnach(int x)
{ 
  deque *tmp1=new deque;//ñîçäГ*ГҐГ¬ Г*îâûé ýëåìåГ*ГІ
  tmp1->val=x;//Гў ïîëå Г¤Г*Г*Г*ûõ âïèñûâГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГҐ
  if (head==0)
  {
    head=tmp1;//åäèГ*Г±ГІГўГҐГ*Г*ûé ýëåìåГ*ГІ ïîêГ* ГЁ Г*Г*Г·Г*ëî
    tail=tmp1;//ГЁ õâîñò
  }
  else
  {
    head->prev=tmp1;//ýëåìåГ*ГІ ïåðåä ãîëîâîé Г*îâûé
    tmp1->next=head;//ýëåìåГ*ГІ Г*îâûé èäåò ïåðåä Г±ГІГ*ðûì
    head=tmp1;//Г*îâГ*Гї ãîëîâГ* Г*îâûé ýëåìåГ*ГІ
    head->prev=0;
  }
}
 
void insertlast(int x)
{
    deque *tmp=new deque;//ñîçäГ*ГҐГ¬ ýëåìåГ*ГІ
    tmp->val=x;
    if (tail==0)//åñëè ïóñòîé äåê
    {
        head=tmp;
        tail=tmp;
        
    }
    else
    {
        tail->next=tmp;//ñëåäóþùèé ýëåìåГ*ГІ Г§Г*  ГµГўГ®Г±ГІГ®Г¬ Г*îâûé
        tmp->prev=tail;//äëÿ Г*îâîãî ýëåìåГ*ГІГ* ïðåäûäóùèé - õâîñò
        tail=tmp;//õâîñò Г*îâûé ýëåìåГ*ГІ
        tail->next=0;
    }
}
 
void showfront()
{
    deque *el;
    el=head;
    while(el!=tail->next)
    {
        cout<<el->val<<" ";
        el=el->next;
    }
}
 
void showback()
{
    deque *el1;
    el1=tail;
    while(el1!=head->prev)
    {
        cout<<el1->val<<" ";
        el1=el1->prev;
    }
}
 
void clean()
{
    deque *del;
    while(head!=0)
    {
      del=head;
      head=head->next;
      delete del;
    }
}
    
    
int main()
{
    for(int i=0;i<10;i++)
    insertnach(i);
    showfront();
}
Теперь похоже работает

Добавлено через 10 минут
правда я так и не понял почему цикл идет до head->prev(или tail->next)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru