数据结构,堆栈基本原理;
数组,堆栈,结构体等系列,数据结构间区别联系;
在此我就不饶了,直接上大白话(我总认为干些实事,比扯淡强....),故事虚构,若有雷同,请你下方留言;
ruiy讲的,所跑的托:
OS,均是POSIX-linux,win暂未考虑,留个亲你....,
Language,暂是C,改天CPP;
others,不强制,你自由发挥;
结构体不能用下标访问,原因在于结构体的各元素成员虽是依序存储的,但每个成员的sizeof()不同-类型不同,因此只能用->,&,*运算符来操作;
数组的各成员元素是依序存储的,同时各个元素的sizeof(),类型一致,因此提供用下标访问且随机;
我们都知道数据结构最重要的一层含义在数据的组织方式,数据组织方式包含2个层面:数据的访问,存储方式;
堆栈同样是一组数据元素的结合,
堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出当前栈顶的元素,也就是说, 只能访问栈顶元素而不能访问栈中其它元素。如果所有元素的类型相同,堆栈的存储也可以用数组来实现,访问操作可以通过函数接口提供;
堆栈,简单案例
https://files.cnblogs.com/ruiy/strings-reverse.zip
注,在代码中数组stack[]是堆栈的存储空间,top保存堆栈栈丁的下一个元素的下标(在此我们根据习性将top叫做栈顶指针),top
总是指向栈顶的下一个元素,Push和Pop操作总是维持这个条件不变;
运行完上述小例后,你应该明白,堆栈的最显眼的结构特点:你要是运行完了说不知道,我都不抽你了,自己抽去,我简单说下那就是LIFO,你也许也知道了FIFO,亲,我只能说你很棒;
亲,在上面我们又知道现实世界存在特权(eg,银行办理业务取号,你没钱的小子和人家大款一样吗?可别忘了,银行存在大客户专区,(你别看你屁颠屁颠的比人家开路虎的来的早了,你还说你啥大清早就来了,还没吃饭呢啥的?)说白了那就是prority,到此天平开始无条件,无底线的倾斜了....),计算机编程中同样存在此种,无独有偶,诸事源于现实世界,亲,悉心洞察世事,敏感无厘头发挥你的想象力;
递归
其实简单for循环就能搞定字符串倒序打印了
(注,对于数组来说确实没必要搞这么复杂又递归又堆栈的,因为数组既可以从前向后访问也可以从后向前访问,甚至可以随机访问,但有些数据结构的访问并没有这么自由)
易维ruiy_ccs
给出的代码load请访问以下链接,别的像局域网本地,yum-repo,端口扫描,在线机器MAC--对应ip留存,.....当前新添加的功能语句未update;
https://files.cnblogs.com/ruiy/ruiy_ccs.zip;
variable PK/VS loop invariant