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

STL List - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ передача параметров из cgi программы в Php http://www.cyberforum.ru/cpp-beginners/thread688051.html
как передать в PHP-скрипт параметры, рассчитанные cgi-программой ? предположим есть программа: #include <iostream> using namespace std; int main()
C++ Изменение системы счисления Задача: перевести число (возможно, очень большое) из данной системы счисления в другую, а так же циклически сдвинуть переведённое число его на d позиций Проблема решения: на некоторых вариантах (например 16->32 или 22->10) программа работает неправильно Что не так? #include <stdio.h> #include <conio.h> #include <iostream> void main () { http://www.cyberforum.ru/cpp-beginners/thread688049.html
Не могу запустить code blocks C++
При запуске программы появляется окно с текстом- не могу создать каталок проекта (мой перевод с английского) Помогите.
Проверка на ошибки(линейн.алгоритм) C++
Проблем-с не могу вдублить где ошибки. #include <iostream> #include <cmath> using namespace std; int main () { wcout.imbue(locale("rus_rus.866")); int z,k,m,z,c; c = 3; cout << "Введите m: \n";
C++ Арифмитическое выражение http://www.cyberforum.ru/cpp-beginners/thread688024.html
Само задание: 13,4sin(-1,26)cos| x/7,5 | Где ошибка? #include <iostream> #include <Stdafx.h> #include <cmath> int main() { int x; int otvet;
C++ Циклы: вычислить сумму и произведение ряда Помогите пожалуйста..Короче нам задали сделать лабу и в одном из заданий такое уровнение (прикриплено ниже ) подскажите как в С++ записать или хоть обьясните что ето токое и как вообще оно решается хотяб с математической точки зрения... Вычислить значение уравнения, которое содержит сумму + произведение y=\sum_{i=1}^{5{i}^{2}}\frac{{5i}^{2}}{i!}+\prod_{i=1}^{25}{i}^{2} подробнее

Показать сообщение отдельно
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
04.11.2012, 09:28     STL List
Связный список представляет собой последовательность элементов (узлов), соединенных в цепочку. Последовательность может содержать любое количество элементов, поскольку при создании списка используется динамическое распределение памяти.
Каждый элемент связного списка представляет собой отдельный объект, содержащий поле для хранения информации и указатель на следующий элемент списка (а в случае двусвязного списка в объекте хранится также указатель на предыдущий элемент).

Структура связного списка в C++ во вложении.

Для представления элемента списка, хранящего, например, символы, можно использовать структуру:
C++
1
2
3
4
5
struct node
{
char value;
node* next;
};
Поле value используется для хранения, собственно, символа, next – указатель на следующий элемент списка. При работе со списками на практике чаще всего приходится выполнять следующие операции:
- создание / уничтожение списка
- добавление элемента
- удаление элемента
- поиск нужного элемента в списке
Для выделения памяти под элементы можно использовать оператор new.
Последовательность действий при создании списка: выделить память под 1-й элемент. В поле value записать значение. В поле next – 0:

C++
1
2
3
node *top = new node;
top->value = ’s’;
top->next = NULL;
Добавление элемента в список: сохранить адрес последнего элемента во временной переменной; создать новый элемент, записать в него значение, в поле next – указатель на предыдущий элемент.

C++
1
2
3
4
node *prev = top;
top = new node;
top->value = ‘d’;
top->next = prev;   //связать с предыдущим
Удалять элементы можно с помощью оператора delete. Его формат: delete <указатель>.
Стек (stack) – это последовательность некоторых однотипных элементов. Данные в стеке организованы по принципу «последним вошел – первым вышел». Это означает, что добавлять и удалять элементы стека можно только с одного конца стека. Доступный конец стека называется его вершиной, операция добавления элемента в стек называется помещением в стек, а операция извлечения из стека – выталкиванием.
Вектор (vector) – это последовательность элементов, доступ к которым осуществляется по индексу. Вектор можно наращивать по мере необходимости, и он осуществляет контроль значений индексов. Добавлять элементы можно только в конец вектора. Вектор предназначен для хранения элементов одного типа.
Очередь (queue) – последовательность однотипных элементов. Данные в очереди, в отличие от стека, организованы по принципу «первым вошел – первым вышел». Добавляются элементы в конец очереди, считываются – с начала очереди.
Пример. Создать класс 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
struct node
{
char value;
node* next;
};
class List
{
private:
node *top;  // указатель на последний занесенный в список элемент
int size;   // размер списка
public:
List() : top (NULL), size(0)
{}
void Push(char c)
{
if (size == 0)
{
top = new node;
top ->value = c;
top ->next = NULL;
//………
}
//………
}
// другие функции
};
Каждому пользователю Всемирной сети необходимо тестирование скорости интернет соединения, чтобы быть уверенным в своем провайдере.
Изображения
 
 
Текущее время: 18:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru