www.cnblogs.com/ruiyqinrui

开源、架构、Linux C/C++/python AI BI 运维开发自动化运维。 春风桃李花 秋雨梧桐叶。“力尽不知热 但惜夏日长”。夏不惜,秋不获。@ruiY--秦瑞

python爬虫,C编程,嵌入式开发.hadoop大数据,桉树,onenebula云计算架构.linux运维及驱动开发.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数据结构,堆栈基本原理;

数组,堆栈,结构体等系列,数据结构间区别联系;

在此我就不饶了,直接上大白话(我总认为干些实事,比扯淡强....),故事虚构,若有雷同,请你下方留言;

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

 

posted on 2014-04-08 19:34  秦瑞It行程实录  阅读(301)  评论(0编辑  收藏  举报
www.cnblogs.com/ruiyqinrui