<HTML><HEAD> <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=koi8-r"> <TITLE>Ada95 Lovelace Tutorial ������ 12.4 - ������������� ��������� ����������</TITLE> <LINK REV="made" HREF="mailto:dwheeler@ida.org"> <!-- Below are RSACi and SafeSurf ratings for this material. --> <META http-equiv="PICS-Label" content='(PICS-1.0 "http://www.rsac.org/ratingsv01.html" l gen true comment "RSACi North America Server" by "dwheeler@ida.org" for "http://www.adahome.com/Tutorials/Lovelace" on "1996.04.04T08:15-0500" exp "1997.07.01T08:15-0500" r (n 0 s 0 v 0 l 0))'> <META http-equiv="PICS-Label" content='(PICS-1.0 "http://www.classify.org/safesurf/" l gen true for "http://www.adahome.com/Tutorials/Lovelace/" by "dwheeler@ida.org" r (SS~~000 1 SS~~100 1))'> </HEAD> <BODY BGCOLOR="#FFFFFF"> <H1><FONT COLOR="#996600">������ 12.4 - ������������� ��������� ����������</FONT></H1> ����� ����, ��� ��������� ���������� �������, � ��� ����� ������ ����� ���������� �����. <P> ���� �� �������� ���������������� ����� ������������� ��������� ����� - ��� ���������������� "�����" ��������� ������ � ����������� ������������ �������� ��� �������, ������������ ������ ������� ��������. ������������, ������� �������� ������������ ������ ������� ������ ��� �������� <EM>����������</EM>. ���� �������� ������, ������� ��������������� �������� �������� ������� �������� � ������ List_Nodes: <P> <PRE> -- ��������������, ��� "Start" ��������� �� ������ ������� ������. Current := Start; -- ������������� ������� ������� �� ������ ������. while Current /= null loop -- ���� ���� ������: Put(Current.Data); -- �������� �������� �������� ��������. Current := Current.Next; -- ��������� � ���������� �������� ������. end loop; </PRE> <P> ����� ��������� � ����� �������, ��� ������������� ���� ������, ��������� ������, ���� ��������� ������ �������� ��������� ��������� ����������. ��������, �������� ������ �������� ���������� ���������, ��� ������� �� ������� ����� ���������� "������������", "����� ��������" � "������ ��������" ��������. ����� ����, ������ ������� �������� ����� ������ (�������� Unbounded_String). � ������� ��������� ���������� �������� ������ ������� ������ ��� �������� ��������� ������: <P> <PRE> type Tree_Node; -- �������� �������� ����. type Tree_Access is access Tree_Node; type Tree_Node is record Parent : Tree_Access; Left, Right : Tree_Access; Data : Unbounded_String; end record; </PRE> <P> � ��� ������ ������������� ���� ����������� ��������� ������; ��� ���� A � B ����� ��� Tree_Access: <P> <PRE> A := new Tree_Node; B := new Tree_Node; A.Data := To_Unbounded_String("Hello!"); -- ����������� �������� B.Data := To_Unbounded_String("Goodbye!"); A.Left := B; -- ��������� ��������. B.Parent := A; </PRE> <P> ���� ��������� ��� �������� ������ ������������ ����� ��������� ����������, �� ��� ����� ������������ ����� �����, ��� � ����� ������ ��������� ����������. ������� ����������� ����������, ���������� ��������� ����� (.) ��������, ����� ������� ����������� ���� ��������� ��������� ���������� A.Left.Data ����� "Goodbye!". <P> ��� ������������� ��������� ����� ����� ��������� � ������� �������� �����������. �������, ����� ����� ����� ��������� ������������, ������� ����� ��� ������ ���������, � ����� ������������ ��. ��������, ����� �������� ������������, ������� ������������� ������� ����� �������, ������ ��� �������� � <<������������>> � ��� ������������� �������� � ������ �����. ��������� ������ ������� � ������������� ������������ �����������, ��������������� ����� �����������, ���� ����� �������. <P> <HR><P> <IMG SRC="q.gif" ALT="" HEIGHT=34 WIDTH=23> <A NAME="quiz"><FONT SIZE=+3 COLOR="#339900">����������:</FONT></A> <P> � ����������� ���� ������� � ����������� ����������, ����� �������� ����� ����� B.Parent.Data? <OL> <LI><A HREF="s12s4r1.htm">������ ������ Unbounded_String.</A> <LI><A HREF="s12s4r2.htm">�������� "Hello!" ���� Unbounded_String.</A> <LI><A HREF="s12s4r3.htm">�������� "Goodbye!" ���� Unbounded_String.</A> <LI><A HREF="s12s4r4.htm">�������; ��� ��������� � ���� ���������� ����� ���������� ����������.</A> </OL> <HR> �� ������ �����: <P> <TABLE BORDER=0><TR> <TH><A HREF="s12s3.htm"> <IMG SRC="barrowl.gif" ALT="PREVIOUS " HEIGHT=31 WIDTH=31> ������� � ����������� �������</A> <P></TH> <TH><A HREF="s12s5.htm"> <IMG SRC="barrowr.gif" ALT="NEXT " HEIGHT=31 WIDTH=31> ������� � ���������� �������</A> <P></TH> <TH><A HREF="lesson12.htm"> <IMG SRC="barrowu.gif" ALT="OUTLINE " HEIGHT=31 WIDTH=31> ��������� � ���������� ����� 12</A> <P></TH> </TR></TABLE> <P> <P> <FONT SIZE=2> <ADDRESS><A HREF="dwheeler.htm">David A. Wheeler (dwheeler@ida.org)</A></ADDRESS> <BR> <I> �������: <A HREF="mailto:jus@univ.kiev.ua">���� �������</A> ����� �������� ��������: <A HREF="mailto:app@polytech.poltava.ua">�.�. �����</A> </I> <P> �������� ����� ����� ��������� ��������� �� ������ "<A HREF="http://www.adahome.com/Tutorials/Lovelace/s12s4.htm">http://www.adahome.com/Tutorials/Lovelace/s12s4.htm</A>". <P> �������� ����� �������� ��������� �� ����� <A HREF="http://www.ada-ru.org">http://www.ada-ru.org</A> </FONT> <!-- This text is part of the Ada95 Lovelace tutorial program. --> <!-- For the contents of lesson 18, the following applies: --> <!-- Copyright (C) 1996 Ada Resource Association --> <!-- Copyright granted to the ARA under the condition that this text --> <!-- will be redistributed to the public domain, without restriction; --> <!-- you may use this information in any way you with, commercially or not, --> <!-- without restriction. --> <!-- = --> <!-- For all other files in Ada95 Lovelace tutorial, the following applies: --> <!-- Copyright (C) 2003 David A. Wheeler --> <!-- This program is free software; you can redistribute it and/or modify --> <!-- it under the terms of the GNU General Public License as published by --> <!-- the Free Software Foundation; either version 2 of the License, or --> <!-- (at your option) any later version. --> <!-- This freedom only applies to the electronic version; the author --> <!-- and/or publisher retain all rights to non-electronic versions. --> <!-- = --> <!-- This program is distributed in the hope that it will be useful, --> <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of --> <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --> <!-- GNU General Public License for more details. --> <!-- = --> <!-- You should have received a copy of the GNU General Public License --> <!-- along with this program; if not, write to the Free Software --> <!-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. --> </BODY> </HTML>