欢迎来到天天文库
浏览记录
ID:19399453
大小:52.50 KB
页数:3页
时间:2018-09-27
《perl实例分析教程之十四--.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、perl实例分析教程之十四>>十、用关联数组创建数据结构 用关联数组可以模拟在其它高级语言中常见的多种数据结构,本节讲述如何用之实现:链表、结构和树。2、结构许多编程语言可以定义结构(structure),即一组数据的集合。结构中的每个元素有其自己的名字,并通过该名字来访问。Perl不直接提供结构这种数据结构,但可以用关联数组来模拟。例如模拟C语言中如下的结构:struce{intfield1;intfield2;intfield3;}mystructvar;我们要做的是定义一个含有三个元素的关联数组,下标分别为field1、fi
2、eld2、field3,如:%mystructvar=("field1","","field2","","field3","",);像上面C语言的定义一样,这个关联数组%mystrctvar有三个元素,下标分别为field1、field2、field3,各元素初始值均为空串。对各元素的访问和赋值通过指定下标来进行,如:$mystructvar{"field1"}=17;3、树另一个经常使用的数据结构是树。树与链表类似,但每个节点指向的元素多于一个。最简单的树是二叉树,每个节点指向另外两个元素,称为左子节点和右子节点(或称孩子),每个
3、子节点又指向两个孙子节点,依此类推。注:此处所说的树像上述链表一样是单向的,每个节点指向其子节点,但子节点并不指向父节点。树的概念可以如下描述:因为每个子节点均为一个树,所以左/右子节点也称为左/右子树。(有时称左/右分支)第一个节点(不是任何节点的子节点的节点)称为树的根。没有孩子(子节点)的节点称为叶节点。有多种使用关联数组实现树结构的方法,最好的一种应该是:给子节点分别加上left和right以访问之。例如,alphaleft和alpharight指向alpha的左右子节点。下面是用此方法创建二叉树并遍历的例程:1:#!/us
4、r/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:#traversetree,printingitselements11:print_tree($root
5、name);12:13:subprint_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($t
6、ree{$rightchildname}ne""){24:print_tree($tree{$rightchildname});25:}26:}结果输出如下:grandchild1child1grandchild2parentgrandchild3child2grandchild4>>>>这篇文章来自..,。
此文档下载收益归作者所有