saiumr 发表于 2020-3-30 11:33:12

数据结构串操作里的一个小问题

本帖最后由 saiumr 于 2020-3-30 11:37 编辑

“简单的应用链表存储串值,一个节点对应一个字符,就会存在很大的空间浪费”

这句话出自程杰老师著《大话数据结构》里的,我看到这里时,本能的以为是结构体的内存对齐的关系浪费空间

然后写了个程序:

https://i.loli.net/2020/03/30/NKcJ2ZiLmasOC6e.gif

如果结构体中有多种类型,那么是有浪费空间的情况,可结构体内单单存 char 类型的成员变量有几个变量就占用几个字节,并没有浪费内存

当然大佬不容置疑,我可能思考的方向或者哪里细节部分就不对,希望有人能够帮忙指点一下,开头程杰老师那句话究竟啥意思啊?{:10_266:}

冰河星云 发表于 2020-3-30 11:37:59

我不知道,但我是来抢头贴的{:10_256:}

saiumr 发表于 2020-3-30 11:41:56

冰河星云 发表于 2020-3-30 11:37
我不知道,但我是来抢头贴的

{:9_238:}安详

最后的魁拔 发表于 2020-3-30 11:56:31

你这个是linux下的vim还是win下的vim
好看,咋设置的呀

saiumr 发表于 2020-3-30 12:09:26

最后的魁拔 发表于 2020-3-30 11:56
你这个是linux下的vim还是win下的vim
好看,咋设置的呀

linux下的,配置完主题之后vim就这样了,过些日子我再配置vim

主题美化终端我安装了zsh,你如果想弄的话上网搜一搜就行了,网上有很多

Love/小/wei 发表于 2020-3-30 16:42:21

我的理解是,你定义一个结构体存储字符,他说的是一个节点对应一个字符,那么你结构体里面的成员假设是有一个char,和一个指针。那么一个链表的每个节点都就要占据空间来存储他的指针。这明显是不划算的。你的代码是没有指针的,不是链表,只是结构体而已。

saiumr 发表于 2020-3-30 22:57:10

Love/小/wei 发表于 2020-3-30 16:42
我的理解是,你定义一个结构体存储字符,他说的是一个节点对应一个字符,那么你结构体里面的成员假设是有一 ...

我想我真是犯蠢了。。。。

犯傻了程杰老师说的是链式存储结构我居然没给指针。。。

谢谢!完美解答,刚刚为每个结构体添加了一个指针成员变量试了一下,每一个都占用16byte,因为有不同数据类型很明显存在内存对齐,再一次感谢!!!{:10_254:}
页: [1]
查看完整版本: 数据结构串操作里的一个小问题