duangsuse::Echo
#include <stdio.h> int main(int argc, char *argv[]); inline linked_list parse_input(FILE *fp); inline void recur_dump_list(FILE *out, linked_list *list); typedef struct node_st { void *obj; node *next; } node; typedef struct linked_list_st { size_t…
duangsuse::Echo
如果有人买了(当然是不可能的,因为没有编译原理的 dalao 关注我?233333)《深入分析 GCC》这本书,会发现作者写了很多 AWK/sed/GNU bc/Bash 代码辅助分析(其实还用了 Graphviz)... 看到 188 面有一些代码可以生成这种树结构,抄下来看看: #c #linux #share #book #pl (我修改了一些标识符语义上的错误,格式化了代码,增强了代码语义的易读性) #include "gt-passes.h" char *pass_type_names[]…
哦,我明白了... 这是有三个子节点的树...
这样我们就可以这样可视化此树了
typedef struct lnode_st {
void *self; lnode_st *sub; lnode_st *next;
} lnode;这样我们就可以这样可视化此树了
nodea {
a
b
c {
d {
}
}
}
node b {
}
c
d
e
duangsuse::Echo
用 LinkedList 来说就是 rootNode obj: a next: node ptr: b next: node ptr: c next: NULL ... 这种抽象程度不够表述... 差了一个用来表示『自己』的指针 哦不.... 好像可以? [a, b [] ]... 好吧这根本不是数组结构... 我抽象错了,不过这是就 tree (fork tree)的问题而言,对我这个问题它还是需要一个额外指针 [a, b [c], d] self:…
结果就是我太蠢了... <del>蠢萌</del> 不是差了一个表述自己的,因为表述自己的已经有了,差的是表述子树的,有了这个才可以处理可能有
>
b, a {}, c 这种嵌套情况... ,a {},>
根本不是数组结构
本来就不是啊... 是链表嘛... 幼儿园级别的入门数据结构算法白学了...
duangsuse::Echo
用 LinkedList 来说就是 rootNode obj: a next: node ptr: b next: node ptr: c next: NULL ... 这种抽象程度不够表述... 差了一个用来表示『自己』的指针 哦不.... 好像可以? [a, b [] ]... 好吧这根本不是数组结构... 我抽象错了,不过这是就 tree (fork tree)的问题而言,对我这个问题它还是需要一个额外指针 [a, b [c], d] self:…
另外 fork tree 本身就可能在节点上加子树... 所以再来一遍 蠢<del>萌</del> duangsuse
duangsuse
|
| bird
| |
| | flower
| - butterfly
|
| dog
| dolphin
- monkey
这个 bird 它不是子树是什么...所以再来一遍... 算了
duangsuse::Echo
duangsuse | | bird | | | | flower | - butterfly | | dog | dolphin - monkey 这个 bird 它不是子树是什么...所以再来一遍... 算了
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
duangsuse | | bird | | | | flower | - butterfly | | dog | dolphin - monkey 这个 bird 它不是子树是什么...所以再来一遍... 算了
这样三个指针的话就可以了,即使下一项也是链表都可以
先写结论:duangsuse 现在连递归都没学会
* 而且 C++ 也不是多会...
duangsuse
|
| bird
| |
| | flower
| - butterfly
|
| sealion
| |
| | tiger
| - smartisian
|
| dog
| dolphin
- monkey
可以被表述成这样self: duangsuse\0... 太手写不友好算
sub:
self: bird\0
sub:
self: flower\0
sub: NULL
next:
self: butterfly\0
sub: NULL
next: NULL
next: NULL
先写结论:duangsuse 现在连递归都没学会
* 而且 C++ 也不是多会...
duangsuse::Echo
这样三个指针的话就可以了,即使下一项也是链表都可以 duangsuse | | bird | | | | flower | - butterfly | | sealion | | | | tiger | - smartisian | | dog | dolphin - monkey 可以被表述成这样 self: duangsuse\0 sub: self: bird\0 sub: self: flower\0…
duangsuse {
bird {
flower,
butterfly
},
sealion {
tiger,
smartisian
},
dog,
dolphin
}
既得易见平凡<del>仿照文法显然,留作习题君思去,自己动手不难</del>
duangsuse::Echo
duangsuse { bird { flower, butterfly }, sealion { tiger, smartisian }, dog, dolphin } 既得易见平凡<del>仿照文法显然,留作习题君思去,自己动手不难</del>
最后我终于明白了... 因为智商比较低所以<del>因为智商比较低所以不会像大佬们一样开口直接上天所以才方便教你们实用知识啊</del> (迫真)
刚才写的全是错的,混淆了
<del>到现在连递归都搞不懂的 duangsuse 是屑</del>
所谓易见就是以上文法。没有省略
, 的后面是 next
这样写 AWK 还能生成出 C 代码了 23333 :\
上学去了拜拜 :<
刚才写的全是错的,混淆了
sub 和 next (或者说是完全靠直觉...)现在不会了... :\<del>到现在连递归都搞不懂的 duangsuse 是屑</del>
所谓易见就是以上文法。没有省略
, 和 {} 都写全了,换句话说就是duangsuse {
...
}
self: duangsuse
sub: ...
next: NULL
bird {
flower,
butterfly
},
{},
dog,
dolphin
self: bird
sub:
self: flower
next:
self: butterfly
next:
next:
self: dog
next:
self: dolphin
遵循 C 大法的指示,未显式初始化的都是 NULL
这种树就是有树结构的... 链表,允许给列表对象增加对接子树data class LinkedList(Int size, ListItem head, ListItem tail)(求别吐嘈
data class ListItem(ListItem next)
data class ListObjectWithSublist(Object ptr, LinkedList sub): ListItem
data class ListObject(Object ptr): ListItem
data class 语法错误没有填写至少一个字段[self] {
[item],
[item2]
},
[item]
{} 的 '{' 前面是 self,后面是 sub 直到 '}', 的后面是 next
这样写 AWK 还能生成出 C 代码了 23333 :\
上学去了拜拜 :<
duangsuse::Echo
最后我终于明白了... 因为智商比较低所以<del>因为智商比较低所以不会像大佬们一样开口直接上天所以才方便教你们实用知识啊</del> (迫真) 刚才写的全是错的,混淆了 sub 和 next (或者说是完全靠直觉...)现在不会了... :\ <del>到现在连递归都搞不懂的 duangsuse 是屑</del> 所谓易见就是以上文法。没有省略 , 和 {} 都写全了,换句话说就是 duangsuse { ... } self: duangsuse sub: ... next: NULL…
This media is not supported in your browser
VIEW IN TELEGRAM
因为已经迟到了(6 点开饭,七点晚自习,晚自习上课,这里到学校至少 40 分钟)就多迟到一会吧,我把算法们都写了(还真会学习)(绝望)
duangsuse::Echo
因为已经迟到了(6 点开饭,七点晚自习,晚自习上课,这里到学校至少 40 分钟)就多迟到一会吧,我把算法们都写了(还真会学习)(绝望)
abstract class LinkedNode constructor(var next: LinkedNode)
data class ListObject(var ptr: Any?): LinkedNode
data class ListObjectWithSublist(var ptr: Any?, var sub: ListObject): LinkedNode
public data class LinkedList(public var size: Int, var head: ListObject, var tail: ListObject)
///// 总之写了这些又查了 Kotlin 的文档,最终还是觉得我当时写的伪代码和 OO 的实际 impact 差的比较大... 不是,是和 Kotlin 的,我还想只靠一行类定义存活呢(绝望)
data class ListObject(var ptr: Any?): LinkedNode
data class ListObjectWithSublist(var ptr: Any?, var sub: ListObject): LinkedNode
public data class LinkedList(public var size: Int, var head: ListObject, var tail: ListObject)
///// 总之写了这些又查了 Kotlin 的文档,最终还是觉得我当时写的伪代码和 OO 的实际 impact 差的比较大... 不是,是和 Kotlin 的,我还想只靠一行类定义存活呢(绝望)
duangsuse::Echo
因为已经迟到了(6 点开饭,七点晚自习,晚自习上课,这里到学校至少 40 分钟)就多迟到一会吧,我把算法们都写了(还真会学习)(绝望)
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
abstract class LinkedNode constructor(var next: LinkedNode) data class ListObject(var ptr: Any?): LinkedNode data class ListObjectWithSublist(var ptr: Any?, var sub: ListObject): LinkedNode public data class LinkedList(public var size: Int, var head: ListObject…
... 我的设计和 OO 的 impact 差的的确有点大啊...
duangsuse::Echo
...那我 8:10 分走吧,如果赶不上末班就说是一直没等到车... :<
实际上后面还有几条广播的... 不过可能当时没有发出去 Telegram Desktop 给搞丢了,不是太重要的,就是分析了一下这种小学生都会的 Kotlin 数据结构定义... 菜啊
duangsuse::Echo
实际上后面还有几条广播的... 不过可能当时没有发出去 Telegram Desktop 给搞丢了,不是太重要的,就是分析了一下这种小学生都会的 Kotlin 数据结构定义... 菜啊
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
🐱 Sticker
即使只是和链表这种弱智数据结构相关的话也是难受啊... 因为上面那个例子明显还是未完成的吧... 就是说我又得重新写了... 😶
Forwarded from 羽毛的小白板
以后打包 nupkg 可以直接内嵌 License,一个好处就是不用预算 License file 的 URL 了
https://github.com/NuGet/Home/wiki/Packaging-License-within-the-nupkg
https://github.com/NuGet/Home/wiki/Packaging-License-within-the-nupkg
GitHub
NuGet/Home
Repo for NuGet Client issues. Contribute to NuGet/Home development by creating an account on GitHub.