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

Выделение динамической памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать файл записей http://www.cyberforum.ru/cpp-beginners/thread1206586.html
Наработки оставил в учебном заведении поэтому не могу скинуть наработки. Помогите с задачей пожалуйста! Условие:"Создать файл записей что имеет такие поля: фамилия автора, название произведения.Удалить из файла все записи, в которых фамилия автора начинается с заданной пользователем буквы" Добавлено через 13 часов 47 минут вот наработки дальше не знаю как #include <iostream.h> #include...
C++ Построение графических изображений Изобразить правильный шестигранник, закрасить верхнюю и нижнюю грани. Фон закрасить другим цветом. Какие компоненты нужны для такой программы? http://www.cyberforum.ru/cpp-beginners/thread1206584.html
C++ Нужен словарь, реализованный при помощи закрытой хэш-таблицы
Ребят помогите пожалуйста с кодом, нужен словарь, реализованный при помощи закрытой хэш-таблицы
C++ Сделать телефон справочник
Помогите пожалуйста! Все работает но в условие сказано ввести телефон и что б программа нашла его и вывела Имя контакта #include <iostream> #include <string.h> #pragma argsused using namespace std; struct record { char name; char faks;
C++ Исключения и утверждения в с++ http://www.cyberforum.ru/cpp-beginners/thread1206562.html
можете понятными словами раскрыть всю суть утверждений и исключений. не могу понять
SFML SFML, произвести какое-либо действие по нажатию мыши Использую библиотеку SFML И не знаю, как сделать какое нибудь действие по нажатию мыши. Помогите пожалуйста. На пример нужно написать в консоль сообщение при нажатии мышкой на каком нибудь спрайте. Добавлено через 40 минут Ну кто нибудь с SFML работал? Добавлено через 3 часа 15 минут Кто нибудь поможет? подробнее

Показать сообщение отдельно
Faoxis
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 114
13.06.2014, 10:56  [ТС]     Выделение динамической памяти
Вот задача полностью (Delphi я не знаю):

Кликните здесь для просмотра всего текста
Список – упорядоченный набор данных одного типа. Отличается от массива тем, что имеет переменное число элементов.
Список из n элементов --------------------------------->
Список может быть реализован 2-мя способами:
1. на основе статических структур (массивов);
2. на основе динамических переменных.
Пример объявления списка:
1. на основе статических структур:
type
TList = record
| DATA_ENTRIES : тип;
end;
var
List : array [1..N] of TList; {массив, N=const }
SIZE : integer; { , указывает текущий размер}
… {базовые операции}

2. на основе динамических переменных:
type
PTR = ^TList; {новое поле данных имеющий тип указателя на TList }
TList = record
| DATA_ENTRIES : тип;
| NPTR : PTR {указатель на начало списка}
end;
var
LIST_HEAD : PTR; {указатель, который может указывать на начало ( или конец) списка}.

Обращение к элементам списка, созданного первым способом:
List[1].DATA_ENTRIES;
List[2].DATA_ENTRIES;

List[N].DATA_ENTRIES;
Обращение к элементам списка, созданного вторым способом:
List_HEAD^.DATA_ENTRIES; - обращение к I-ому элементу
List_HEAD^.NPTR^.DATA_ENTRIES; - ко II-ому элементу
List_HEAD^.NPTR^. NPTR^.DATA_ENTRIES;


Это однонаправленный ( односвязный) список – можно перемещаться только вперед.
Процедуры для динамического списка:
Исходная структура списка:
type
NameStr=string[15];
Link=^Student
Student=record
Name:NameStr;
Mark:integer;

Next:Link;
end;
var
First:Link;

Создание и инициализация динамической переменной:
var
P:Link;

New(P); {создали элемент списка}
{инициализируем элемент списка}
P^.Name:=’Иванов’;
P^.Mark:=5;

P^.Next:=nil; {пустой указатель}

Процедура добавления элемента в начало списка:
procedure AddFirst(A:Link);
{А-указатель на добавляемый элемент}
begin
A^.Next:=First;
First:=A;
end;

Процедура добавления элемента в произвольное место списка:
procedure AddAfter(A,Old:Link);
begin
a^.Next:=Old^.Next; {(1) А-указатель на добавляемый элемент}
Old^.Next:=A; {(2) Old-указатель на элемент списка, за которым
добавляется элемент}
end;

Удаление элемента из начала списка:
procedure DelFirst(var A:Link);
begin
A:=First; {сохраняем указатель на удаляемый элемент}
First:=First^.Next;
end;


Удаление элемента из произвольного места списка:
procedure DelAfter(Old:Link;Var A:Link);
begin
A:=Old^.Next; {сохраняем указатель на удаляемый элемент}
Old^.Next:=Old^.Next^.Next
end;


Поиск элемента:
function FindName(FN:NameStr):Link; {ф-ция возвращает указатель (Link) на найденный элемент}
var Curr:Link; {Curr – указатель на текущий элемент списка }
begin
Curr:=First;
While Curr<>nil do
If Curr^.Name=FN then
begin
FindName:=Curr; {возвращает указатель на найденный
Exit; элемент}
end;
else
Curr:=Curr^.Next;
FindName:=nil; {элемент не найден}
end;
 
Текущее время: 08:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru