[开发者心得] 普通大学生“数据结构”课作业笔记#000-目录-逻辑结构与存储结构

[复制链接]
914 |1
脑的研发记录 发表于 2023-9-15 19:02:55 | 显示全部楼层 |阅读模式
本帖最后由 脑的研发记录 于 2023-11-25 20:02 编辑

普通大学生“数据结构”课作业笔记#000-目录-
所用编辑器版本0.25.0.4

目录总览:
壹.背景故事(1283字)
贰.所需语法 (目前内容:引用)
叁.简单说明   (目前内容:学习感想六个词)
肆.代码样例     数组,数组栈
伍.相关参考链接 (目前内容:TS引用,TS类,hello 算法-数据结构网站,内存泄漏)
帖子性质是上大学数据结构课学习笔记,实现代码采用TS语言,游戏工程内具体实现还在探索emm
写到一半发现字节超了,就只建立了一个目录,用于日后方便查找帖子

目前由于没有填充内容,尝鲜的话只能移步到帖子最后的Hello 算法网站了解一门名叫“数据结构”的东西   (2023.9.20)语
内容已更新

壹.背景故事

我的笔记情况发展史
一直为作业笔记头疼不已。小学亢亢写笔记,后来保存到柜子里吃灰,初中写笔记存记在课本上,然后复习时抱着课本读。高中时写笔记,然后各科备上一个特定的笔记本,每堂课掏出来也嫌麻烦,主要是大本子笔记本写不完甚至有一半都是白纸占空间,小本子笔记写完又不知道怎么保存,就一摞笔记叠着放。然后复习的时候抽出来看看。但是笔记有比较多的一部分是注释,还得按图索骥到原来的参考书。就很不方便。又后来进行优化,做一点摘抄,结果做了没多久就感觉比较累,也是很不耐烦,而且有的时候,已经发生了进步,但是笔记是只能增,不能减少,划掉删除也不能消减面积,修正带修改也比较麻烦,也不美观。又后来才用活页拉杆夹,但是一张一张多了,厚起来,或者频繁使用,拉杆就会松动emm,硬件更新也觉得还是不够方便。
但最震撼我的是当年有同学笔记做的很认真,就感觉像极了手账那种的,仿佛自己做了一本小而精的参考书,然后高考过去了,她就把笔记出售了,我人都震惊了。望着这些年自己的笔记,既希望能持续产生价值,有希望仍能拥有这些书,这样就不能售卖,也不能转让,借给别人的话也挺麻烦的emm,人和人的联系到有了不少,但是笔记和书经不起考验。
然后回头望着家里存着的大大小小的笔记本和自初中以来就没有扔掉过的课本,还在发愁,难道还要办一个学生生涯博物馆,展出一个初中生到大学的全部笔记,课本参考书,非要通过展现这六年的学习总的体量这样,才能让这些书在保证所有者不变的情况下焕发新的价值吗?
后来看到群里有大佬发一点算法书,推荐一本叫“hello 算法”的书,理由是有其他大老师们写了代码文件,是可视化的。我以为是那种动画,加可怕文字代码的那种就没理会,直接收藏夹吃灰,等登堂入室再说。后来为了写简历,找开源代码实战c语言,然后也想着把自己的一个基于c语言和easyX做的2d跳一跳小游戏优化成元气骑士那种的然后发到GitHub上赚一波简历。一注册完就在个人主页的推送里看到之前提到的(hello 算法)然后觉得事情不大对劲,《hello 算法》还是一个程序???于是就进去看,虽然看不懂,然后就没了。
过了一两周,开学了。现在程序设计老师讲《数据结构》,发现作业是文字论述,就又回想起来难以破解的笔记魔咒。不过想起来有论坛,可以发帖,就想着把作业写进帖子,然后修改也方便,也不用担心笔记转借啥的。又能修改方便,又能容易查找,又能长期保存,又能为最后统计个人大数据当素材,又能给新同学一点经验参考。然后作业链接给老师一点小小的震撼,直呼“赢”。
然后就开始排查情况:
1.在本论坛查询了一下数据结构相关帖子,发现好像不存在班门弄斧的情况,抛砖引玉可还行。
2.在网络上查TS语法支不支持指针,看看C语言的指针能不能直接用,结果发现虽然不支持,但是TS里有个“引用”一次可以套用概念。
3.代码复制粘贴,跑不动,以为就此挂掉,但觉得是bug,就再尝试补充一点代码,发现能跑。问题不大。
4.没有验证TS怎么写数据结构,不知道实际咋写,又想起来《hello 算法》,在一查,发现甚至还配套公开网站,不用登陆,点开即看。然后人都震惊了。赶紧看代码部分,有TS代码样例。懂了,引用过来,加一点注释,然后在想办法加一点别的东西,应该可。
于是,
“数据结构,启动!”


贰.所需语法
后续更新,由于字节数限制,新发帖子,但是链接会汇总到此处。


TS语法“引用”(详情相关链接)

新建脚本复制粘贴跑就完事。


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

    /** 当脚本被实例后,会在第一帧更新前调用此函数 */
    protected onStart(): void {

        var person = null;//一定写,不写,编辑器就不会输出
        person = {};//创建个控对象 --引用类型  //也一定写,写了就是声明是一个空引用
        person.name = 'jozo';
        person.age = 22;
        person.sayName = function () { console.log(person.name); }
        person.sayName();// 'jozo'

        delete person.name; //删除person对象的name属性
        person.sayName(); // undefined
    }
}


TS语法"类” (详情相关链接)
引用的限制(相当于const类型的指针)如图,点击放大:

360截图20230915174924834.jpg
简单来说,就是一个TS变量a 经过引用后,不能再次引用。


解决方法是依靠索引遍历,每走动到下一个,将链表里的一个节点的值复制粘贴到中间变量x(hello 算法里是head,类型是class LNode)
TS用for循环与索引,实现步进,完成遍历。

叁.简单说明
逻辑结构与存储结构
链接:“数据结构”课作业笔记#001-简述-逻辑结构与存储结构 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)

按图索骥,先看案例。
找到目标,找到实现。
前后翻阅,对比思考。

肆.代码样例
“数据结构课作业笔记”#011-数组-二维数组 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)   (2023-11-25)语
“数据结构课作业笔记”#010-数组-多组冲击层改烟花-并发的预兆 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)    (2023-11-24)语
“数据结构课作业笔记”#009-数组-循环队列 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)                 (2023-11-23)语

“数据结构课作业笔记”#008-数组-方块喷泉-循环队列预兆 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online) ( 2023-11-21) 语
“数据结构课作业笔记”#007-数组-从冲击层到按钮生成阶梯-排队队列 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)    2023-11-11 语
“数据结构课作业笔记”#006-数组-从地刺到冲击层-队列的预兆 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)       (2023-11-9)语
“数据结构课作业笔记”#005-数组-投产练习-做一个地刺 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)                         (2023-11-8)  语
“数据结构课作业笔记”#004-数组-简单排列的变量和它们必然命运(下) 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)     (2023-11.7)语
“数据结构课作业笔记”#003-数组-简单排列的变量和它们必然命运(中) 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)     (2023-11-6)语
“数据结构课作业笔记”#002-数组-简单排列的变量和它们必然命运(上) 口袋方舟论坛|面向全年龄的UGC互动内容平台与交流社区 (ark.online)  (2023-11-5)语

emm,还没写,后续在这里补上链接(2023-9-20)语。

伍.相关参考链接


JavaScript 基本类型 引用类型 简单赋值 对象引用 | 菜鸟教程 (runoob.com)
TypeScript 类 | 菜鸟教程 (runoob.com)
0.2   如何使用本书 - Hello 算法 (hello-algo.com)
什么是内存泄漏?有什么危害_内存泄露容易导致什么结果_-九斤-的博客-CSDN博客

PS.《hello 算法》一书中,TS语言里,删除节点是教学示范使用,没有释放内存,直接copy使用《hello 算法》中的删除节点功能的TS代码,有内存泄露风险。原因是TS的引用不支持改变,一个引用相当于const指针,指针连同内存一起销毁了。















回复

使用道具 举报

哭唧唧的细狗 发表于 2023-9-15 19:19:52 | 显示全部楼层
回复

使用道具 举报

热门版块
快速回复 返回顶部 返回列表