太平洋汽车网 | 太平洋游戏网 | 太平洋女性网 | 太平洋亲子网 | PC购物网  网站地图  
太平洋电脑网
首    页
产业资讯
行情报价产品库
数据调研评测室
服 务 器网络设备
方案应用办公设备
软件资讯产品论坛PCclub社区
下载中心软件论坛摄影部落
渠道商情通信游戏科技奥运
图库二手招聘培训
diyDIY硬件 手机手  机 笔记本笔记本 台式机台式机

数码世界

数码相机数码相机 随身听MP3/MP4 摄像机摄像机 数字家电数字家电 精品廊精品廊
北京 上海 广州 深圳 香港 广西 重庆 武汉 山东 江苏 辽宁 福建 成都 西安 江西 湖南 黑龙江 台湾
 
 
   
软件 首页 | 资讯 | 应用 | 评测 | 教你学电脑 | 信息安全 | 创意设计 | 开发特区 | 软件下载 | 专题 | 社区
 
软件 特色专区: QQ大本营 | Vista专区 | msn总动员 | 组网专栏 | Photoshop | 视频专栏 | 常用软件
 
您现在的位置: 软件  >  开发特区  >  Web开发  >  CGI

Perl教学 第九篇 关联数组(哈希表)

出处:PConline[ 2004-02-14 09:33:55 ] 作者:flamephoenix 责任编辑:pjl

导 读  
  Perl教学 第九篇 关联数组(哈希表)
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 ("$nodename\n"); 23: if ($tree{$rightchildname} ne "") { 24: &print_tree($tree{$rightchildname}); 25: } 26: } 结果输出如下: grandchild1 child1 grandchild2 parent grandchild3 child2 grandchild4 注意函数print_tree()以次序“左子树、节点、右子树”来输出各节点的名字,这种遍历次序称为“左序遍历”。如果把第22行移到19行前,先输出节点明,再输出左子树、右子树,则为“中序遍历”,如果把第22行移到25行后,输出次序为左子树、右子树、节点,则为“右序遍历”。 可以用同样的方法,即连接字符串构成下标,来创建其它的数据结构,如数据库等。
前一页 [1] [2] [3] [4] 下一页
下一篇:Perl教学 第十一篇 文件系统
 今日论坛热贴推荐
·几秒钟合并N个TXT文件
·技巧:怎么清除Windows 7视频锯齿现象
·揭密网游帐号是怎样被盗的全过程
·没有刻录机?Windows 7硬盘安装四大法
·Windows 7将解决微软的“纠结”
·全球首款装正版win7的thinkpad x200
·十大理由决定Windows 7成败
·微软官网首次提及Windows 7 SP1
·从Windows桌面看性格【娱乐】
·惊现google官方Chrome Os下载!?
更多资讯请点击: Perl教学  关联数组(哈希表) 

  发给好友 我要报错 投稿给我们 加入收藏 返回顶部  
相关文章  

About Us | 关于我们 | 隐私政策 | 广告服务 | 联系我们 | 招聘精英 | 网站律师 | 合作联系 | 友情链接
太平洋专业网站群:  太平洋电脑网 ┊ 太平洋汽车网 ┊ 太平洋游戏网 ┊ 太平洋女性网 ┊ 太平洋亲子网

广东省通信管理局
ICP证粤B2-20040647
互联网清理整顿
技术支持与报障:support@pconline.com.cn
        020-87568837         
对本站有任何建议、意见或投诉,请点这里在线提交.
本网站简体、繁体两种版本,以简体版为准
PConline版权所有,未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任