- 博客(3)
- 问答 (1)
- 收藏
- 关注
原创 用剥洋葱理解递归逆序输出单链表
题目要求:从最里层开始,依次往外拔掉每一层的洋葱 假设带头结点(最外层看做头结点L) void Reverse(Linklist L){ 第一步,判断L后边还有没有,有的话才能往下剥,没有的话程序end 即如果除了头结点还有别的结点,就可以在if(L->next!=null)条件下执行{ 往里剥,直到最里层,Reverse (L->next) (开始递归!后边第二步没办法执行了!只要还有就一直剥已经被剥好的层的看作已经入栈)} 第二步,拔掉一层洋葱prin
2022-11-03 14:15:18
172
2
原创 顺序栈的清空为什么不用删除数据?销毁为什么还需要把指针置空?
顺序栈的清空操作只需要把s.top=s.base 那数据还存在吗?存在 关键在于,把top指针移到栈底的时候,这些数据已经没什么用了。 下次压栈的时候是从栈底开始存的,就像a=1,a=2,新的数据会把原来的数据盖掉。 而销毁顺序栈的时候,delete s.base是把从base开始指的一段连续空间都给释放了。 删除了指针指的内存,这个指针不再指向特定地址了,又回到了未初始化的状态。 为了防止读写到这个未初始化的指针(野指针),所以需要将它设置为NULL?🤔 (欢迎指正)
2022-08-23 23:38:57
849
4
原创 多图搞懂位域空间大小?(可能)
上边那个struct是结构体类型,下边那struct就是位域类型 struct的空间大小是所有成员之和,位域呢,得分情况看 1位+32位=4字节+1位,这多出来的1位就需要重开辟一个4字节。 为啥一次开辟4个字节?不是123字节?因为成员里unsigned int 这个类型就是4字节啊喂! 1+31+1=32+1 这个我严重怀疑,中间那个b它自己独占一块4字节,因为它位于中间位置,所以导致c和a合不到一起 此后忽略第一条注释 真的跟顺序有关?...
2022-06-21 20:49:21
71
空空如也
要疯了!怎么回到终端啊?
2021-06-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人