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

Linked List описание - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Аналоги TcpClient и TcpServer http://www.cyberforum.ru/cpp-beginners/thread1114213.html
Здравствуйте. Подскажите пожалуйста компоненты работы с сетями и построения клиент-серверных приложений в современных средах разработки, аналогичные или похожие на TcpClient и TcpServer. И актуальны ли эти компоненты сейчас? Цели: создание, например, чата, с возможностью обмена файлами, и приложений с потоковой передачей информации в лок. сети. Почему спрашиваю - литературы по TcpClient и...
C++ Есть ли в C++ пул потоков Перерыл много ссылок и не мог найти есть ли в с++ пул потоков,все источники указывают на с# ThreadPol,у меня курсовая пул потоков а информации не могу найти http://www.cyberforum.ru/cpp-beginners/thread1114204.html
Найти пару чисел и вставить между ними цифру C++
float a,b; cout<<"Enter a"<<endl; cin>>a; cout<<"Enter b"<<endl; cin>>b; it=el.begin(); while(it!=el.end()) {
Разбор задачи с Codeforces C++
Есть задача: Может кто-то мне объяснить як ее сделать. Вот ссылка на решение автора: http://codeforces.ru/blog/entry/10755 Также есть чужое решение (помогите его разобрать): #include <vector> #include <list> #include <map>
C++ Как получить сигнал с клавиатуры, если активно другое приложение http://www.cyberforum.ru/cpp-beginners/thread1114156.html
Всем привет. Хочу реализовать вызов приложения, которое в данный момент не является активным. Т.е. к примеру, пользователь задал клавишу 'R' для одной функции, которая должна выполниться не забирая фокус на себя. По клавише PrtScr другое действие и т.д. В совокупности до 10 клавиш или их сочетаний должно быть передано в программу. Заранее всем большое спасибо
C++ Как организовать ввод в консольную строку даты в виде: dd/mm/yyyy Подскажите, кто знает как организовать ввод в консольную строку даты в виде: dd/mm/yyyy. Чтобы потом можно было считать переменные day, month, year. Заранее спасибо! подробнее

Показать сообщение отдельно
bekabot
1 / 1 / 0
Регистрация: 18.12.2013
Сообщений: 61
08.03.2014, 21:18     Linked List описание
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
/*!Begin Snippet:filebegin*/
#ifndef _LINKEDLIST_H_
#define _LINKEDLIST_H_
 
using namespace std;
 
/*!Begin Snippet:fullnode*/
/*!Begin Snippet:private*/
template <typename T>
class LinkedList {
 
private:
    class Node {
        friend class LinkedList<T>;
 
    private:
        T data;
        Node* next;
 
    public:
        Node(T d, Node* n = NULL) : data(d), next(n) {}}
    ;
    /*!End Snippet:fullnode*/
 
    Node* head;  // Beginning of list
    Node* tail;  // End of list
    int count;    // Number of nodes in list
    /*!End Snippet:private*/
 
public:
 
    LinkedList(const LinkedList<T>& src);  // Copy constructor
    ~LinkedList(void);  // Destructor
 
    /*!Begin Snippet:simple*/
    // Default constructor
    LinkedList(void) : head(NULL), tail(NULL), count(0) {}
 
    // Returns a reference to first element
    T& front(void) {
        assert (head != NULL);
        return head->data;
    }
 
    // Returns a reference to last element
    T& back(void) {
        assert (tail != NULL);
        return tail->data;
    }
 
    // Returns count of elements of list
    int size(void) {
        return count;
    }
 
    // Returns whether or not list contains any elements
    bool empty(void) {
        return count == 0;
    }
    /*!End Snippet:simple*/
 
    void push_front(T);  // Insert element at beginning
    void push_back(T);   // Insert element at end
    void pop_front(void);  // Remove element from beginning
    void pop_back(void);  // Remove element from end
 
    void dump(void);  // Output contents of list
};
 
/*!Begin Snippet:copyconstructor*/
// Copy constructor
template <typename T>
LinkedList<T>::LinkedList(const LinkedList<T>& src) :
        head(NULL), tail(NULL), count(0) {
 
    Node* current = src.head;
    while (current != NULL) {
        this->push_back(current->data);
        current = current->next;
    }
 
}
/*!End Snippet:copyconstructor*/
 
/*!Begin Snippet:destructor*/
// Destructor
template <typename T>
LinkedList<T>::~LinkedList(void) {
 
    while (! this->empty()) {
        this->pop_front();
    }
}
/*!End Snippet:destructor*/
 
/*!Begin Snippet:pushfront*/
// Insert an element at the beginning
template <typename T>
void LinkedList<T>::push_front(T d) {
 
    Node* new_head = new Node(d, head);
 
    if (this->empty()) {
        head = new_head;
        tail = new_head;
    } else {
        head = new_head;
    }
    count++;
}
/*!End Snippet:pushfront*/
 
/*!Begin Snippet:pushback*/
// Insert an element at the end
template <typename T>
void LinkedList<T>::push_back(T d) {
 
    Node* new_tail = new Node(d, NULL);
 
    if (this->empty()) {
        head = new_tail;
    } else {
        tail->next = new_tail;
    }
 
    tail = new_tail;
    count++;
}
/*!End Snippet:pushback*/
 
/*!Begin Snippet:popfront*/
// Remove an element from the beginning
template <typename T>
void LinkedList<T>::pop_front(void) {
 
    assert(head != NULL);
 
    Node* old_head = head;
 
    if (this->size() == 1) {
        head = NULL;
        tail = NULL;
    } else {
        head = head->next;
    }
 
    delete old_head;
    count--;
}
/*!End Snippet:popfront*/
 
/*!Begin Snippet:popback*/
// Remove an element from the end
template <typename T>
void LinkedList<T>::pop_back(void) {
 
    assert(tail != NULL);
 
    Node* old_tail = tail;
 
    if (this->size() == 1) {
        head = NULL;
        tail = NULL;
    } else {
 
        // Traverse the list to node just before tail
        Node* current = head;
        while (current->next != tail) {
            current = current->next;
        }
 
        // Unlink and reposition
        current->next = NULL;
        tail = current;
    }
 
    delete old_tail;
    count--;
}
/*!End Snippet:popback*/
 
/*!Begin Snippet:printlist*/
// Display the contents of the list
template <typename T>
void LinkedList<T>::dump(void) {
 
    cout << "(";
 
    Node* current = head;
 
    if (current != NULL) {
 
        while (current->next != NULL) {
            cout << current->data << ", ";
            current = current->next;
        }
        cout << current->data;
    }
 
    cout << ")" << endl;
}
/*!End Snippet:printlist*/
 
/*!End Snippet:filebegin*/
#endif
в комментариях кода пишется, что head - начало списка, а tail - конец списка, но я так и не понял, где в коде указывается(описывается), что это именно так. Укажите строку, спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru