Динамический списокDelphi , Компоненты и Классы , СпискиДинамический списокunit dlist1_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit1: TEdit; // фамилия Edit2: TEdit; // имя Button1: TButton; // кнопка Добавить Button2: TButton; // кнопка Показать procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} type TPStudent = ^TStudent; //указатель на тип TStudent TStudent = record f_name: string[20]; // фамилия l_name: string[20]; // имя next: TPStudent; // следующий элемент списка end; var head: TPStudent; // начало (голова) списка // добавить элемент в начало списка procedure TForm1.Button1Click(Sender: TObject); var curr: TPStudent; // новый элемент списка begin new(curr); // выделить память для элемента списка curr^.f_name := Edit1.Text; curr^.l_name := Edit2.Text; // добавление в начало списка curr^.next := head; head := curr; // очистить поля ввода Edit1.text := ''; Edit2.text := ''; end; // вывести список procedure TForm1.Button2Click(Sender: TObject); var curr: TPStudent; // текущий элемент списка n: integer; // длина (кол-во элементов) списка st: string; // строковое представление списка begin n := 0; st := ''; curr := head; // указатель на первый элемент списка while curr <> nil do begin n := n + 1; st := st + curr^.f_name + ' ' + curr^.l_name + #13; curr := curr^.next; // указатель на следующий элемент end; if n <> 0 then ShowMessage('Список:' + #13 + st) else ShowMessage('В списке нет элементов.'); end; end.Скачать весь проект Here is the translation of the content into Russian: Динамическая список Код реализует динамический список (связанный список) в Delphi, где каждый узел представляет собой студента с именем, фамилией и указателем на следующий узел. Список может быть динамически расширен добавлением новых узлов в начало. Имущества
1. Объявления типов: Хорошая практика объявлять типы на верхнем уровне модуля, а не внутри секций реализации.
2. Обработка ошибок: В процедуре Альтернативное решение
Вместо использования связанного списка можно рассмотреть использование
В этом примере Статья описывает создание динамического списка в Delphi с помощью рекурсивного указателя на тип TStudent. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |