|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - стек, список в паскале абц (поясните) |
|
|
Разное - стек, список в паскале абц (поясните)
|
|
Новый участник Сообщения: 3 |
вобщем есть программа, рабочая 100%
не пойму процедуру удаления зачем нам ? begin
u:=last;
v:=first;
while u^.next<>first do
begin
u:=u^.next;
end;
first:=u;
first^.next:=nil;
dispose(v);
uses Formsabc;
type
PNode = ^TNode; //Это наш указатель (ссылка)
TNode = record //описание одной ячейки очереди
color: string[30]; // рабочие данные
kod:string[10];
next: PNode; // указатель на следующий элемент очереди
end;
var
first,last: PNode; // переменная, через которую будет общаться с очередью - это и есть "голова" очереди
bt1,bt2,bt3:button;
l:listbox;
d,k:Field;
procedure Add(var first:PNode;var last:PNode);
var n:PNode;
Begin
new(n);
n^.color:=d.text;
n^.kod:=k.text;
n^.next:=nil;
if first=nil then
begin
first:=n;
last:=n;
end
else
begin
n^.next:=last;
last:=n;
end;
End;
procedure Addelement;
begin
Add(first,last);
end;
procedure Print;
var r:PNode;
begin
l.Items.Clear();
r:=Last;
while r<>nil do
begin
l.Items.Add(r^.color+' - '+r^.kod.ToString());
r:=r^.next;
end;
end;
procedure del(var first,last:PNode);
Var v:PNode; u:PNode;
begin
if first=last then
begin
dispose(last);
first:=nil;
last:=nil;
end
else
begin
u:=last;
v:=first;
while u^.next<>first do
begin
u:=u^.next;
end;
first:=u;
first^.next:=nil;
dispose(v);
end;
end;
procedure delelement;
begin
del(first,last);
end;
procedure Main;
Begin
bt1:=new Button('Добавить');
bt2:=new Button('Показать');
bt3:=new Button('Удалить');
LineBreak;
d:=new Field('Цвет',150);
LineBreak;
k:=new Field('код цвета',100);
LineBreak;
l:=new ListBox();
LineBreak;
bt1.click+=Addelement;
bt2.Click+=Print;
bt3.Click+=delelement;
end;
BEGIN
Main;
END.
|
|
|
Отправлено: 14:59, 08-01-2013 |
|
Необычный Сообщения: 4466
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Евгений_Еров@vk:
Если зачем -- то для красоты и полного набора функционала. Создание/добавление/удаление. Если как -- убивает ссылки и стирает данные, высвобождая память. |
|
|
------- Отправлено: 01:38, 09-01-2013 | #2 |
|
Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать |
|
Отправлено: 19:22, 10-01-2013 | #3 |
|
Пользователь Сообщения: 139
|
Профиль | Отправить PM | Цитировать Полностью очищает стек
|
|
------- Отправлено: 03:00, 11-01-2013 | #4 |
|
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Цитата ViRTaCe:
|
||
|
Отправлено: 09:21, 11-01-2013 | #5 |
|
Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать то есть этот кусочек удаляет указатель на удаленный элемент?
|
|
Отправлено: 20:44, 13-01-2013 | #6 |
|
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Нет, этот код присваивает указателю значение nil, а зтем элемент удаляется dispose(v);
|
|
Отправлено: 22:25, 13-01-2013 | #7 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| C/C++ - Стек | ve4niy | Программирование и базы данных | 2 | 17-04-2011 22:41 | |
| Разное - Стек в Паскале | zena | Программирование и базы данных | 0 | 30-11-2010 22:50 | |
| Log/Monitoring - стек OSI на Windows | mall-rnd | Сетевые технологии | 0 | 17-02-2010 17:57 | |
| C/C++ - Класс стек и очередь на с++ | aina | Программирование и базы данных | 8 | 30-12-2009 07:54 | |
| Теория - Стек, заданный списком, на Паскале. | ManHack | Программирование и базы данных | 9 | 07-04-2009 23:48 | |
|