0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 19
|
|
1 | |
Динамические структуры данных23.03.2009, 10:45. Показов 2187. Ответов 3
Метки нет Все метки)
(
Добрый день! Помогите пожалуйста с решением данной задачи:
Задание: Создать объект - однонаправленный список L1 без головного элемента. Добавить в стандартный набор объекта ваш метод согласно варианту. Мой метод такой: Удалить два первых элемента, если они равны, иначе модуль их разности поместить на третье место. В вашем методе не могут быть использованы другие методы объекта. Ваш метод должен быть выполнен при условии, что в списке имеется достаточное количество элементов для выполнения операции, иначе вывести сообщение. Все операции выполнять только изменением указателей на элементы. Значения элементов задать в строке констант или в диалогов режиме. Проверить размеры свободной памяти до выполнения программы и после (функцией MemAvail), эти значения должны совпадать. Обязательно выводить список на экран до и после выполнения заданной операции. Например при удалении второго элемента: Before Memaval = 280960 P - (12.34) - (-5.67) - (431.32) - (98.46) - nil P - (12.34) - (431.32) - (98.46) - nil After Memaval = 280960 Возможный вид метода: function Method(<список параметров>):boolean; Функция возвращает True, если выполнение прошло успешно и False в противном случае. У меня имеется шаблон, туда вроде только метод добавить нужно... Код
{--------------------------------------------------------------} type Inf=integer; {- тип информационного поля } const Zero:Inf=0; {- нулевая константа } type Ptr=^EL; {- указатель на элемент } EL=record {- элемент } Dn:Inf; {- информационное поле } Nx:Ptr; {- ссылка на следующий злемент } end; Stack = Object {- объект - стек } P:Ptr; constructor Init; { Создать стек } function Empty:boolean; { Пустой ли стек ? } procedure Push(D:Inf); { Добавить в стек } function Pop:Inf; { Взять из стека } destructor Done; { Удалить стек } procedure Print; { Печать стека } end; {--------------------------------------------------------------} constructor Stack.Init; { Создать стек } begin p:=nil; end; function Stack.Empty:boolean; {Пустой ли стек } begin if p=nil then Empty:=true else Empty:=false; end; procedure Stack.Push(D:Inf); {Добавить в стек } var q:Ptr; begin new(q); q^.Dn:=D; q^.Nx:=p; p:=q; end; function Stack.Pop:Inf; {Взять из стека } var q:Ptr; begin Pop:=p^.Dn; q:=p; p:=q^.Nx; Dispose(q); end; procedure Stack.Done; {Удалить стек } var D:Inf; begin while not Empty do D:=Pop end; procedure Stack.Print; {- печать стека } var q:Ptr; begin { указатель p движется от начала списка до конца } q:=p; while q^.Nx<>nil do begin write(q^.Nx^.Dn,' ');q:=q^.Nx end; end;
0
|
|
23.03.2009, 10:45 | |
Ответы с готовыми решениями:
3
Динамические структуры данных. Организация данных в списковые структуры Динамические структуры данных Динамические структуры данных динамические структуры данных |
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 19
|
|
28.03.2009, 17:51 [ТС] | 2 |
Ну что никто не в курсе как это делается ?
![]() Помогите пожалст...
0
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
||||||
29.03.2009, 15:22 | 3 | |||||
Начал делать ваше задание, так приходится менять все методы.
![]() Добавлено через 24 минуты 52 секунды На, держи...
З.Ы. Ввод минуса (для получения отрицательных чисел) не делал, я думаю ты и сам сможешь это доделать... Добавлено через 36 секунд З.З.Ы. И да, я немного переделал несколько методов, которые у тебя были в шаблоне.
1
|
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 19
|
|
07.04.2009, 17:25 [ТС] | 4 |
Благодарю, только сегодня добрался до форума и получил ответ, спасибо!
0
|
07.04.2009, 17:25 | |
Помогаю со студенческими работами здесь
4
динамические структуры данных Динамические структуры данных Динамические структуры данных динамические структуры данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |