Inertnet域名IP搜索程序实现.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档