zoukankan      html  css  js  c++  java
  • Delphi双向链表

    要点:

    1.其实链表,就是每个节点结构体里面多了2个指针,相当于这个节点的左手和右手,左手牵着上一个节点,右手牵着下一个节点。

    2.注意,需要单独弄个结构体,知道头节点和尾节点。然后头节点一直顺着右手,就可以找到尾节点,从而遍历所有的成员

    program MyPoint;  //指针详解
    {$APPTYPE CONSOLE}
    uses
      SysUtils,windows,Generics.Collections ;
    
    {双向链表}
    procedure MyFunc8();
    type
      PNode = ^MyNode;  //定义指针
      MyNode = record   //节点
       Text: string;
       Forw: PNode;     //前节点
       Next: PNode;   //后节点
      end;
      MyCurrNote = record //标志
        Head: pNode;      //头
        Last: pNode;      //end;
    var
      I: Integer;
      OldNode , MyNewNode : PNode;//用来新建的节点
      Info :MyCurrNote;//指向头尾
      InsertNote,temNote : PNode;
    begin
    {初始化头尾节点}
       OldNode := nil;Info.Head := nil;//头
        Info.Last := nil;//{创建双向链表}
       for I := 0 to 99 do
       begin
          New(MyNewNode);
          MyNewNode.Text := IntToStr(I);
          if Assigned(OldNode) then OldNode.Next := MyNewNode  //旧节点右手拉新节点
          else Info.Head := MyNewNode;//头节点
          MyNewNode.Forw := OldNode;//新节点左手拉旧节点
          OldNode := MyNewNode;     //新节点变成旧节点,指定尾节点
          Info.Last := OldNode; //尾
          Info.Last.Next := nil;//尾节点右手为空
       end;
       while Assigned(Info.Head) do //头节点遍历
       begin
         Writeln(info.Head.Text);
         Info.Head := Info.Head.Next;
       end;
       while Assigned(Info.Last) do //尾节点遍历
       begin
         Writeln(Info.Last.Text);
         Info.Last := Info.Last.Forw;
       end;
    end;
    
    
    {main主函数}
    begin
     MyFunc8();
     Readln;//回车退出
    end.
  • 相关阅读:
    python学习笔记(五)
    python学习笔记(七)
    python小游戏——猜数字2.0
    python学习笔记(六)
    python小游戏——猜数字2.0
    python学习笔记(五)
    python中的in运算符
    python学习笔记(七)
    jmeter(4)响应断言 json断言 beanshell断言
    jmeter(2)几种不同的contenttype方式
  • 原文地址:https://www.cnblogs.com/GodPan/p/3390147.html
Copyright © 2011-2022 走看看