- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB中的数据结构使用VB的过程中,发现要使用一些数据结构,虽然不像C里面那样方便,但总结一下,还是可以做的,虽然不是很习惯。以飨各位。
自定义数据类型(Type Statement)可以包含多个互相关联的不同数据类型的元素,VB限定声明一个自定义数据类型必须在模块层(Module Level)进行。声明了一个自定义数据类型后便可以定义一个那种类型的变量。1.用名为queue的自定义数据类型声明一个固定大小的数组:Type queuedata As Integer ’用作数据项next As Integer ’用作指针项
End TypeConst? max=10Dim a(10) As queuea( i )为数组中的一个元素,该元素的指针指向数组a(10)第i+1个元素,其下标为i ,指针的值为i data存放元素的值(作数据场用),变量next存放紧接本元素后的元素的指针。通过用自定义数据类型queue声明数组a(10)和对变量next作专门规定,可以发现,我们能将一片连续的线性分布的数据存放在内存中非线性的不连续的地址空间里,却不影响我们对其进行线性的运算操作。1定义的数组均可作为链表使用。queue将a(10)初始化为一个单向链接表:For i = 0 To 9 a( i ).next = i + 1 ’ i + 1为下一个元素的指针a( i ).data=10*rndNext i 2.栈和队列Visual Basic程序设计中,栈可以用来实现递归作用;或者是将数组和链表中因删除而空闲的资源回收利用,避免出现一边是资源空闲,一边数组或链表长度不断增长的尴尬局面。栈可以用一维数组或链表作存储结构。用数组来实现既容易又方便,此时用指针变量Top1指向数组结点,每次有元素进栈栈顶指针top1=top1+1,a(top1).data= 10*rnd,每次有元素出栈top1=top1-1,b= a(top1).data top1=0栈空,top1等于数组上限时栈满。top1、bottom,最后进队元素的指针等于队头指针top1,队中最先进队元素的指针等于队尾指针bottom,当top1=bottom时队空,初始条件为top1=bottom=0,当top1+1=bottom(数组)或a(top1).next=bottom(链表)时队满。有元素进队时top1=top1+1(数组)或top1=a(top1).next(链表);有元素出队时bottom=bottom+1(数组)或bottom = a(bottom).next(链表)。 使用固定大小的数组总会遇到栈满或队满的情形,我们可以使用动态数组来避免,动态数组是Visual Basic灵活性、便捷性的重要特征,它可以有效地管理内存。在例3中还通过引入变量linshi实现了当队满时在链表中插入一个节点的操作。在链表中删除一个节点的操作与此类似。2进行了初始化。Dim top1 As integer’定义指向队头的指针变量Dim bottom As integer’定义指向队尾的指针变量Dim linshi????????? ’变量Public Function removequeue(a1 As Integer)? 出队函数If bottom = top1 Then??? bottom = top1队空 Debug.Print 队空 top1 = 0: bottom = 0?? Else??? bottom = a(bottom).next?? bottom指针后移,为元素出队作准备 j = a(bottom).data??????? 元素a1出队 Debug.Print 出队,b, j, bottom, jEnd IfEnd FunctionPublic Function insertqueue(ByVal a1 As Integer)?? 进队函数If a(top1).next = bottom Then?? a(top1).next = bottom队满 max=max+1????? Redim Preserve a(max) as queue????? linshi = a(top1).next?? 队满,准备插入新节点 a(top1).next = max??? 插入新节点的指针 top1 = max??? top1指针指向新位置,为新元素a1进队作准备 a(top1).next = linshi? 新节点插入结束 a(top1).data = a1???? 新元素a1进队Elsetop1 = a(top1).next 队不满,top1指针后移,新元素a1准备进队 a(top1).d
您可能关注的文档
- TCID50和PFU的换算公式.docx
- TCLL110H9500A-UD参数-TCL铁粉社区.docx
- TCL云逸Z11系列超级智能云电视是今年8月份推出的产品.doc
- TCL彩电CRTCL彩电CRT高清彩电维修实例.doc
- TDA-TMPGEncDVDAuthor安装图解.doc
- TEDxBNUZ首场沙龙走进北师珠.doc
- TED世界未来发展的方向.doc
- TED益暖中华尖峰创想校园行.doc
- TFBOYS-剩下的盛夏.doc
- thank,appreciate和grateful的不同用法.doc
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)