大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> CGI专区 -> perl实例分析教程之十四

perl实例分析教程之十四

时间: 2021-07-31 作者:daque

十、用关系数组创造数据构造   用关系数组不妨模仿在其它高档谈话中罕见的多种数据构造,本节报告怎样用之实行:链表、构造和树。 2、构造 很多编制程序谈话不妨设置构造(structure),即一组数据的汇合。构造中的每个元素有其本人的名字,并经过该名字来考察。 perl不径直供给构造这种数据构造,但不妨用关系数组来模仿。比方模仿c谈话中如次的构造: struce{ int field1; int field2; int field3; }mystructvar; 咱们要做的是设置一个含有三个元素的关系数组,下标辨别为field1、field2、field3,如: %mystructvar = ("field1" , "" , "field2" , "" , "field3" , "" ,); 像上头c谈话的设置一律,这个关系数组%mystrctvar有三个元素,下标辨别为field1、field2、field3,各元素初始值均为空串。对各元素的考察和赋值经过指定下标来举行,如: $mystructvar{"field1"} = 17; 3、树 另一个常常运用的数据构造是树。树与链表一致,但每个节点指向的元素多于一个。最大略的树是二叉树,每个节点指向其余两个元素,称为左子节点和右子节点(或称儿童),每个子节点又指向两个孙子节点,依该类推。 注:此场所说的树像上述链表一律是单向的,每个节点指向其子节点,但子节点并不指向父节点。 树的观念不妨如次刻画: 由于每个子节点均为一个树,以是左/右子节点也称为左/右子树。(偶尔称左/右分支) 第一个节点(不是任何节点的子节点的节点)称为树的根。 没有儿童(子节点)的节点称为叶节点。 有多种运用关系数组实行树构造的本领,最佳的一种该当是:给子节点辨别加上left和right以考察之。比方,alphaleft和alpharight指向alpha的安排子节点。底下是用此本领创造二叉树并遍历的例程: 1 : #!/usr/local/bin/perl 2 : 3 : $rootname = "parent"; 4 : %tree = ("parentleft", "child1", 5 : "parentright", "child2", 6 : "child1left", "grandchild1", 7 : "child1right", "grandchild2", 8 : "child2left", "grandchild3", 9 : "child2right", "grandchild4"); 10: # traverse tree, printing its elements 11: &print_tree($rootname); 12: 13: sub print_tree { 14: local ($nodename) = @_; 15: local ($leftchildname, $rightchildname); 16: 17: $leftchildname = $nodename . "left"; 18: $rightchildname = $nodename . "right"; 19: if ($tree{$leftchildname} ne "") { 20: &print_tree($tree{$leftchildname}); 21: } 22: print ("$nodenamen"); 23: if ($tree{$rightchildname} ne "") { 24: &print_tree($tree{$rightchildname}); 25: } 26: } 截止输入如次: grandchild1 child1 grandchild2 parent grandchild3 child2 grandchild4

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.