<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>
��� ������������� ��������� ����� ����� ��������� � ������� �������� �����������.
�������, ����� ����� ����� ��������� ������������, ������� ����� ��� ������ ���������, �
����� ������������ ��.
��������, ����� �������� ������������, ������� ������������� �������
����� �������, ������ ��� �������� � &lt;&lt;������������&gt;&gt; 
� ��� ������������� �������� � ������ �����. ��������� ������ �������
� �������������  ������������ �����������, ��������������� ����� �����������,
���� ����� �������.
<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>
&nbsp;&nbsp;����� �������� ��������: <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>