- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Inertnet域名IP搜索程序实现
“Inertnet域名IP搜索”
程序规范说明
1.问题描述
(1)题目要求:利用树的兄弟孩子二叉链表结构表示Internet域名系统得树型结构,实现输入某站点域名,在树中搜索其IP地址,直至域名全部匹配成功,若成功则给出其IP,否则给出找不到的信息。
(2)基本要求:由用户输入站点域名的数据,建立起一个反映域名结构的树,例如中国农大的站点:在该树中从根到叶子的各层节点应该是root,cn,edu,cau,www.叶子节点www另有一个数据域,存放中国农大站点的IP:03。
(3)测试数据:取常用的著名网站域名和IP建立了域名结构树,有35个站点域名。当输入“”时输出为“9”,而输入为时输出为“找不到服务器或发生DNS错误”。
2.需求分析
(1)本程序用以求出树内已经存在的站点的IP。
(2)程序运行之后会提示用户输入站点的域名。
(3)程序一开始要求用户输入站点域名和IP的数据,建立查询树且存入文件。
(4)用户输入完之后,程序将输出结果,如果找到全匹配的域名则输出其IP,如果找不到输出相应的出错信息。
附加:在此作者为程序添加了一个插入新的域名和IP的功能,这样就可以利用本来已经有的文件内容了。
3.概要设计
(1)为了实现上述程序的功能,应该以孩子兄弟链表存储树,所以需要树的抽象数据类型。
(2)存入磁盘文件时还需要另一种文件的抽象数据类型。
(3)所有的域名和IP都是以串的形式存的,所以还需要串的抽象数据类型。
(4)当用户输入站点的域名时,需要将域名分段存储,在搜索时从最根部依次提出来与树的节点域比较,由于用户输入是从最小级到最根级,弹出时与输入顺序相反,比如输入“”,其中:www是第三级,163是第二级,com是第一级,所以再与树节点比较时,首先比较com,然后比较163,最后才比较www。根据这种“后进先出”的关系,需要栈作为辅助工具,所以需要栈的抽象数据类型。
具体内容:
1)树的抽象数据类型
ADT Tree {
数据对象D:站点域名的集合。
数据关系R:{H}
(1)D中存在惟一称为根的数据元素root,它在关系{H}下没有前驱。
(2)D-{root}之后可划分为D1,D2,…,Dn(n0)对任意的划分都两两不相交。对任意的i(1≤i≤n),惟一的存在数据元素,有;
(3)对应于D-{root}的划分,H-{〈root ,Xi〉}(i=1,2,…,n)有惟一的一个划分H1,H2,…,Hn (n0),对任意的(i≤j,k≤n)有,并且对任意的i(1≤i≤n), 是Di上的二元关系,(Di,{Hi})是一颗符合本定义的树,成为根root的子树。
基本操作P:
CreateChild(T)
初始条件:树根T已经存在。
操作结果:根据用户输入的域名建立此域名的树链,并以T为树根如用户输入,则在建立起以T为根,cn为T的第一个孩子,www为叶子的树链,所有的节点都链在孩子域。
InitialTree(T)
操作结果:通过用户输入的数据,构造域名树。其实是将建好的域名树链有序地插到树中相应的位置。
Insert(T)
初始条件:树T已经存在。
操作结果:插入新的域名及IP。
CreateTree(T, *fp)
初始条件:包含树的信息文件已经存在,fp 为指向文件的指针。
操作结果:通过从文件中读取数据,构造域名树。
DeleteTree(T)
初始条件:T已经存在。
操作结果:销毁树,释放空间。
} ADT Tree
2)文件的抽象数据类型
ADT File {
数据对象:D ={ai│ai∈ElemSet, i=1,2,…,n, n≥0}
数据关系:R ={〈ai-1,ai〉│ai-1,ai∈D, i=1,2,…,n}
基本操作:│
Save(T)
初始条件:树T存在。
操作结果:先序遍历树,给叶子节点数据域赋IP值,同时把相关信息存入文件。
} ADT File
3)串的抽象数据类型
ADT String {
数据对象:D ={ai│ai∈ElemSet, i=1,2,…,n, n≥0}
数据关系:R ={〈ai-1,ai〉│ai-1,ai∈D, i=1,2,…,n}
基本操作:
CopyChar(s, *a)
初始条件:a是字符串常量。
操作结果:生成一个其值等于a的串s。
CopyStr(s, a)
初始条件:a是一个串。
操作结果:生成一个值等于a的串s。
CompareStr(a, b)
初始条件:a和b是两个串。
操作结果:若ab返回值0;若a=b,返回值=0;若ab,返回值0。
DeleteString(s)
初始条件:串s存在。
操作结果:销毁串。
} ADT String
4)栈的抽象数据类型
ADT Stack {
数据对象:D ={ai│ai∈ElemSet, i=1,2,…,n, n
您可能关注的文档
最近下载
- 《大学之道》《人皆有不忍人之心》(成语识记+挖空特训+情境默写+写作素材) 统编新教材高考语文课内古诗文【要点梳理与素材积累】.docx VIP
- 五年级道德与法治3,主动拒绝烟酒与毒品优秀教案.pdf
- 《美丽的丝巾ppt课件》小学美术浙人美版二年级下册_2.ppt
- 《论语十二章》(成语识记+挖空特训+情境默写+写作素材) 统编新教材高考语文课内古诗文【要点梳理与素材积累】.docx VIP
- 电动单梁起重机设计计算书.doc
- 2069-3-3101-002 WKB产品判定准则-外发.docx
- 露天矿组织架构、部门职责.pdf VIP
- 《数字化测图》课程标准(高职).docx
- 医疗行业医疗设备采购方案.docx VIP
- 朝阳市第四高中诗词大会十二宫格题.ppt
文档评论(0)