口袋方舟“数据结构课作业笔记”#002-数组-简单排列的变量和它们必然命运(上)

口袋方舟“数据结构课作业笔记”#002-数组-简单排列的变量和它们必然命运(上)
所用编辑器版本0.25.0.4

目录总览:
零.水字数的道理(解释为什么这么写数据结构的文案,可以直接跳过)
壹.背景故事
贰.所需语法 (代码如本节图示)
叁.简单说明
肆.相关参考链接 (返回主站)

         上回介绍顺序结构和逻辑结构有点抽象,解释信息是怎样的通过物质进行存储的,但是没有讲数据读取快慢究竟是怎样产生的。这里补充一下,大概就是想象自己是一个数据,自己和其他数据放在火车里,CPU相当于乘务员,站在自己身边的乘务员问找自己身边的乘客只要走一步就行,而去另外一节车厢就肯定走好几步。这个步数在代码层面看不出来。但是数组相当于车厢,车上乘客相当于数组元素。从一个元素到另一个元素的基本过程从本节开始。
零.水字数的道理(解释为什么这么写数据结构的文案,可以直接跳过)
          总是好奇学习为什么困难,为什么知识长得像是教科书里的样子的,有没有一些自然而然的解释?在摸爬滚打几年中,了解到知识的历史的顺序和学习的知识顺序不一定相同。感觉知识分离了产生的背景,知识本身也会变化。比如说下面一栏概述UE5Lumen全局光照原理的视频链接,知识就好像成了人面对困难的自然而然的行动,而不仅是白纸黑字上的应该什么什么。
         【老奇】阴差阳错 撼动世界的游戏引擎_哔哩哔哩_bilibili  
         业界前头,产业需求本身就是知识产生的背景,学校里面系统学习,知识本身成为学习的目的。我希望营造一个简单的环境,“面向需求”学习知识,希望“用啥学啥,系统学习可以是一个自然而然的事情。”
         靠学习得来的知识来决定使用数组,靠直觉习惯来决定使用数组。
         知识说因为有人用数组就成功了,所以这样用数组可以,所以遇事查先例。直觉说因为默认遇到这种情况用数组,这样试着穷举着就成功了,所以遇事默认数组穷举法。学习知识根本原因应该是节约开发精力,新的尝试多少还得走一步看一步,探索新的赛道,面向穷举,消耗大量精力。
         从直觉与穷举开始,重新感受数据结构,给知识一个不需要理解的面貌——这可以是自然而然产生的事情。
         文案设计组成:故事背景(需求)——简单描述(产生概念)——多次重复字(概念定位明确、设置默认情况)——使用(产生经验、产生关键词)——知识组织历史(参考链接)
壹.背景故事(字)
         大一老师讲数组,印象依稀中学习数组的原因是老方法使用变量变得麻烦了,每次需要存储一个数字就要声明一个变量,像存储1就要 int a = 1;再存储2,就要int b =2,无穷无尽。后来听说了“数组”,它可以一下子声明一堆变量(量大),如 int a[100], 就声明了100个变量, 而且这一堆变量都按照序号排列(有标记),就类似于学校学号:不用清楚具体变量的其他名字,仅仅是根据一个序号,就能调用一个变量。比如a[0],指的是刚才这个“数组”里的第一个变量。
  
         因为“量大”,读取见数组,因为“标记”,分类学编号。
         因为“量大”,万事用数组,因为“标记”,优化改编号。
         因为“量大”,初学靠数组,因为“标记”,操作皆编号。
         因为“量大”,按部就班难,因为“标记”,各得其所终。
         因“量大”而生,随“标记”而息。
         一数一编号,一事一数组。

贰.所需语法 ()
TypeScript Array(数组) | 菜鸟教程 (runoob.com)

链接不看也行。总之复制下面代码改改数字试试,绿色代码不用管,看看输出日志就行
《---myCode-TypeScript---》


@Core.Class
export default class list_array extends Core.Script {

    /** 当脚本被实例后,会在第一帧更新前调用此函数 */
    protected onStart(): void {
        var i;
        var al: number[] = [12345];
        // var bl: number[] = [106,202,303,404,505];
        for (i = 0i < 5i++) {
            console.log(al[i]);
            // console.log(i);
        }

}


《---myCode---》
从1到5一堆数码,按小到大排好,放进花括号{}里,第一个数字“1”,存在a[0],里面。这就是数组下标为“0”的变量存的数字。
以上代码中,i每变化一个,其中a变成的a[0], a[1],a[2],a[3],a[4],都是变量,不过可以通过i++,快速从一个变量跳转到另一个变量里面。这就是“标记”的作用:快速。
量大,为了区分变量,数组内变量靠标记进行跳转。
快速存储5个数字的需求就满足了。
更多可能是要存5天获得的硬币数,第一天获得1枚,第二条获得2枚,第三天获得3枚,第四天获得4枚,第五天获得5枚。

再比如说,我想知道第三天获取的硬币数目,也就是a[2]里面存档到数据。
a[0]是第一天,a[1]是第二天,a[2]是第三天。
就需要这样的代码
《---myCode-TypeScript---》


@Core.Class
export default class list_array extends Core.Script {

    /** 当脚本被实例后,会在第一帧更新前调用此函数 */
    protected onStart(): void {
        var i;
        var al: number[] = [12345];
        // var bl: number[] = [106,202,303,404,505];
        for (i = 0i < 5i++) {
            console.log(al[i]);
            // console.log(i);
        }
        console.log(al[2]);
      //这是新添加的一行代码

    }
}
《---myCode---》

然后一天可能存了不只是硬币,还可能是经验值,就复制粘贴下面的代码跑

《---myCode-TypeScript---》




interface amode {
    a: number;
    next: number;
}
// 声明一个类型,amode,这个类型里面有
// number类型的变量a,
// number类型的变量next
@Core.Class
export default class list_array extends Core.Script {


    /** 当脚本被实例后,会在第一帧更新前调用此函数 */
    protected onStart(): void {
        var i;
        // var al: number[] = [1, 2, 3, 4, 5];
        // var bl: number[] = [106,202,303,404,505];
        // for (i = 0; i < 5; i++) {
            // console.log(al);
            // console.log(i);
        // }
        // console.log(al[3]);


        // for(i=0;i<5;i++){
        //     console.log(bl);
        // }


       
// 声明一个数组,这个数组的每一项都是amode类型的
        var apro: amode[] = [
            // 对a赋值,对next的赋值
            { "a": 0"next": 4 },
            { "a": 1"next": 3 },
            { "a": 2"next": 2 },
            { "a": 3"next": 1 },
            { "a": 4"next": 0 }];
        var n = 0;


        for (i = 0i < 5i++) {
            console.log(apro[i].a);
            // console.log("硬币数"+apro.a+"经验"+apro.next);
            // n = apro.next;
        }


       
  // 输出每一个apro数组每一项amode里的next变量值
        for(i=0;i<5;i++){
            console.log(apro[i].next);
        }


    }


   
}



《---myCode---》



叁.简单说明   
这一段原来是打算讲后进先出的数组存储用法,但是篇幅字节数太大,就讲了一半,后续补上。
肆.相关参考链接
回到主站
普通大学生“数据结构”课作业笔记#000-目录-逻辑结构与存储结构 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)




 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值