±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
ÀÚ·á½Ç ÀÚ·á½Ç ÀÔ´Ï´Ù.
±Û³»¿ë - ÀÚ·á½Ç
 Pascal ·Î ÀÛ¼ºÇغ» Double Linked List ¼Ò½º
ÃÖ¿ø½Ä
(ÃÖ¿ø½Ä)
2015-09-19 ¿ÀÀü 1:40:08
2336ȸ Á¶È¸


µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
÷ºÎÆÄÀÏÀÌ ¿Ã¶ó°¡Áö ¾Ê¾Æ¼­¿ä...  

¾Æ·¡ Áú¹®ÀÇ ´ëÇÑ °¡»ó ÄÚµåÀÔ´Ï´Ù.

[Áú¹®°ú ´äº¯] - [Áú¹®]LinkedList Áú¹®ÀÔ´Ï´Ù. 



//------------------------------------------------------------------------------
//
//  Image Array Component
//
//  BitmapÀ» ¸Þ¸ð¸®»ó¿¡¼­ °ü¸®ÇÔ
//
//  History
//    2015.07.20 :  °³¹ß ½ÃÀÛ
//    2015.07.22 :  Standard VCL Library (std)Çü½ÄÀ¸·Î °³¼±
//
//
//------------------------------------------------------------------------------
unit VCL_stdNodes;

interface

uses
  SysUtils, Classes;

Const
  cSnID_Nil  = -1;

Type
  TSnID        = Integer;
  TSnNavi      = (snvFirst,
                  snvPrev,
                  snvCurrent,
                  snvNext,
                  snvEnd);
  TSnInsert    = (sniInsNone,
                  sniInsBefore,
                  sniInsAfter);
  TSnPosition  = (snpErr,  // Not Calc, No Conncted
                  snpSame, // Same Node
                  snpAsc,  // Ascending
                  snpDes); // Descending
  // Node
  pSnNode      = ^TSnNode;
  TSnNode      = Record
                  ID       : TSnID;    // ID
                  Data     : TObject;  // Data [ Generic Data Container ]
                  Prev     : pSnNode;  // Node
                  Next     : pSnNode;
                 End;
  //
  TstdNodes = class(TComponent)
  private
   FStart   : pSnNode;   // Start Node
   FCurrent : pSnNode;   // Cursor
   FAutoID  : Integer;   // Unique ID (Auto Incremental)
  protected
  public
   //
   Procedure Debug       (Strs : TStrings);
   Procedure Clear;
   Function  Count  : Integer;
   Function  AutoID : TSnID;
   //
   Procedure Node_Create (Var Node : pSnNode);
   Function  Node_Free   (Var Node : pSnNode) : Boolean;
   //
   Function  Navi        (Nav     : TSnNavi) : pSnNode;
   Function  Find        (ID      : TSnID  ) : pSnNode;
   Function  FindInx     (Data    : pSnNode) : Integer;
   Function  Sorted      (Src,Tgt : pSnNode) : TSnPosition; overload;
   Function  Sorted      (Src,Tgt : TSnID  ) : TSnPosition; overload;
   Function  Connected   (