欢迎光临散文网 会员登陆 & 注册

「Felys」简易脚本语言【基础】

2023-08-03 10:22 作者:银河猫猫侠  | 我要投稿

【概述

制作Felys时因为能力有限并没有太多复杂的内容,但在正式开始之前有必要先温习一下一些两种非常实用的数据结构:栈和链表。

栈和单链表示意图


【栈和链表

栈:由一个列表和栈顶索引值组成,标准上我们只能对其进行两种操作,即压栈和弹栈。压栈顾名思义就是将一个元素放在栈的顶端,索引值指向他,弹栈则是将顶端的数据拿出,索引值指向它下面一个数据。在此基础上,我还添加了几个额外操作:栈的初始化,仅查看栈顶的数据而不弹出(即不修改索引值);将栈的全部元素全部加一或减一,不过后者仅在一个特殊的地方使用,不具有普遍适用性。如果你已经看过我的源码,你会注意到我使用了双浮点型作为栈存储的数据,这是因为只需要一些简单的强制转换,这个栈就也可以存储指针变量(当然也可以用于存放字符),这对解析的时候至关重要,这样就不需要再额外开一种栈存放指针,保持代码美观和简易。注意,不要直接修改栈中数据,这样会破坏数据结构的严谨性和可维护性。

对栈操作的实现

链表:链表是由节点组成的,每个节点存放着其他节点的内存地址和其自身的数据,如果存放的是下一个元素的节点就叫单链表,如果还额外存放了上一个元素的节点就叫双链表。在Felys中我们会用到单链表和一种前文提到的特殊链表,由于其高度灵活性,这里我先按下不表,后面会再详解。


【其他】

作为基础的一部分,我还手写几个对字符串操作的函数而没用使用字符串库,主要是因为手写这些很有意思,并且还给了我可定制化的空间,使用起来更加自在。

字符串相关的几个函数原型


【总结

到这里基础概念的讲解就结束了,如果到这里你都能理解,那么请继续往后看,反之则建议先去补一下基础概念。

「Felys」简易脚本语言【基础】的评论 (共 条)

分享到微博请遵守国家法律