易语言算法入门读篇.docVIP

  • 41
  • 0
  • 约1.47万字
  • 约 21页
  • 2016-10-16 发布于贵州
  • 举报
易语言算法入门读篇

易算法初步之一_线性表 本系列讲座仅供初学编程且能熟练掌握易语言者学习。本讲座只讲一些基本的编程算法和对应概念。如果愿以学,每篇都需细细研读,彻底搞懂。 写讲座很费时间。本人没有太多的业余时间。关键是水平实在有限,文笔实在是自犬,打字速度巨慢,所以讲座将不定期推出。当然,动力还是来自易友的支持和本人对易语言的感谢之情。算法需从头学起,先讲线性表吧。 线性表的概念 线性表作为最基本的数据结构,在编程中运用很广泛。线性表上的运算是比较简单和常用的,在研究线性表上的运算前,还是先讲讲线性表的有关概念。 何谓线性表? 现实生活中线性表的例子很多。如,英文字母表(A-Z)是线性表,其中每个字母就是一个数据元素(也称结点)。易语言中的一维数组也是线性表。每个数据成员就是结点。可以发现这些结点的之间的特点就像是用一根线一把珍珠串在一起成为一根珍珠链。任何一个珍珠最多和两个珍珠相连。 线性表(Linear List) 是由n(n=0)个数据元素(结点)a1,a2,.....,an组成的有序序列。其中数据元素的个数n定义为表的长度。当n=0时称为空表。常常将非空线性表(n0)记做:(a1,a2,.......,an)(排版局限就这样表示吧)。 线性表的逻辑结构前面以讲过,现在用专业的语句给大家描述一下。 线性表的逻辑特征,就是其结点的邻接关系。a1称为开始结点,它没有直接前趋(“直接前趋”,是指与它相邻且在它前面的结点。)而仅有一个直接后继,“直接后继”,是指与他相邻且在它后面的结点);an称为终端结点,它没有直接后继,而只有一个直接前趋。其余的内部结点ai(2=in-1)(a后面的字母都是小下标,没办法表示时用括号括住,^_^),有一个直接前趋a(i-1),和直接后继a(i+1)。明白了线性表的逻辑结构后,编程时的很多问题与此类似时,就可以抽象为线性表。在用线性表上的运算方法进行运算。 在易语言中线性表的存储方式就是用一维数组。所以,我们把一维数组称为线性表。以后线性表上的运算,都是通过一维数组完成。线性表的其它存储结构在易语言中不易实现,不再我们现在的研究范围。 关于结点 ? 线性表是由一个个结点组成,结点间的邻接关系就构成线性表的逻辑结构。其内容我们以讲过。结点是什么呢?结点是数据的载体,它可以是简单的变量类型,更多时候是复杂的自定义数据类型的变量。 线性表的运算。 易语言以提供了一维数组的运算方法。我们现在研究他们到底是怎么实现的。理由就是,很多时候 结点是很复杂的自定义数据类型的变量,这时的一维数组就无法用易语言提供的运算命令进行计算,这时就需要我们自己来写。 线性表上的运算是最简单的,也是每个想学算法的人首先和必需掌握的。下节我们在讲吧 易语言算法入门(2) ?插入运算 讲完线性表的有关概念,我们以一维数组为例来研究线性表上的基本运算。 1.插入运算 线性表的插入运算是指在线性表的第i(1=i=n)个位置上,插入一个新结点x,使线性表的长度为n+1。 在易语言中,一维数组上插入一个数据可以直接调用 “无返回值 ?插入成员 (欲插入成员的数组变量,欲插入的位置,欲插入的成员数据)”系统命令。我们来研究它使怎么实现的。 原理:原理很简单,当向一维数组的第i个位置插入一个数据时,第i个位置及它以后的数据依次都向后移动,将第i个位置腾出来后,把所要插入的数据写入该位置。 算法:1.首先增加数组的长度。在易语言中可以用“加入成员”和“重定义数组”两种方法。前者可能更快些。2.移动数据。不破坏数据,当然是从数组的最后位置向前移动了。可设一个位置变量p指向最后位置。data 是定义的一维数组,长度为n。data[p],就是我们插入数组尾部的空数据。 data[p]=data[p-1] 把数组的倒数第二个数据移到尾部。然后p=p-1 ,p指向数组的倒数第二个数据, data[p]=data[p-1] 把数组的倒数第三个数据移到数组的倒数第二个位置上,......依次移动,最后把数组的第i个位置上的数据移到i+1的位置上。3.把需要插入的数据插入到data[i]。ok 子程序:插入数据 返回值类型:逻辑型 参数:欲插入数组 ?数据类型:整数型 ?参考,数组 参数:欲插入数据 ?数据类型:整数型 参数:插入位置 ? ?数据类型:整数型 局部变量:p ? ? ? 数据类型:整数型 如果真 (插入位置 < 1 或 插入位置 > 取数组成员数 (欲插入数组)) ? ?返回 (假) 如果真结束 加入成员 (欲插入数组, 欲插入数据) p = 取数组成员数 (欲插入数组) 判断循环首 (p > 插入位置) ? ?欲插入数组 [p] = 欲插入数组 [p - 1] ? ?p = p - 1 判断循环尾 () 欲插入数组

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档