大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长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/perl2 :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 elements11: &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 ("$nodename\n");23: if ($tree{$rightchildname} ne "") {24: &print_tree($tree{$rightchildname});25: }26: } 截止输入如次:grandchild1child1grandchild2parentgrandchild3child2grandchild4 提防因变量print_tree()以步骤“左子树、节点、右子树”来输入各节点的名字,这种遍历步骤称为“左序遍历”。即使把第22行移到19行前,先输入节点明,再输入左子树、右子树,则为“中序遍历”,即使把第22行移到25行后,输入步骤为左子树、右子树、节点,则为“右序遍历”。不妨用同样的本领,即贯穿字符串形成下标,来创造其它的数据构造,如数据库等。

热门阅览

最新排行

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