黑马程序员技术交流社区

标题: 数据结构 [打印本页]

作者: GKAirzzzzz    时间: 2017-2-19 12:26
标题: 数据结构
据说这是编程的基础,包括栈、队列、树、图、查找、排序等。争取每天解决一个小问题
作者: 烟雨清寒时    时间: 2017-2-19 12:28
据说是谁

作者: GKAirzzzzz    时间: 2017-2-19 12:33
java内存分堆内存和栈内存,一直不明白分这些做什么呢。。然后有一天突然认识到电脑里处处都是栈啊。栈就是为了保证一个舒适符合期望的用户体验。比如我浏览网页一堆,撤销时应该按我打开的顺序倒着退回去。一般变量名啊,对象名啊就会放在栈里,而对象里面的数据比如变量函数啦就会开辟一块堆内存,然后让对象名指向这块堆内存。。哈哈,这就是java里面的指针吧~~栈和堆,说白了,都是存储区域,只是操作原理和性质不同,为了方便理解和使用,人为加了这样的命名。。这些纯是个人理解,欢迎纠正和交流。
作者: 烟雨清寒时    时间: 2017-2-19 12:38
就跟安卓的activity是一样的,全部放到栈里面,这样用户体验是很棒的

作者: GKAirzzzzz    时间: 2017-2-19 12:39
本帖最后由 GKAirzzzzz 于 2017-2-19 12:41 编辑

放一段摘抄,关于栈的理解。
栈是计算机术语中比较重要的概念,实质上栈就是一段内存区域,但是栈满足一定的特性,那就是只有一个口,具有先入后出的特性,这种特性在计算机中有很广泛的运用。其实在程序员无时无刻不在运用栈,函数的调用是我们间接使用栈的最好例子,因此可以说栈的一个最重要的运用就是函数的调用。但是栈的运用还不止这些,还有很多,其中几个典型的运行如下:判断平衡符号,实现表达式的求值(也就是中缀表达式转后缀表达式的问题以及后缀表达式求值问题),在路径探索中实现路径的保存也可以说是栈的经典运用之一。具体的问题具体分析,只要满足先入后出特性的问题都能找到现成的数据结构---栈。
在函数调用中,如果不保存调用程序的状态,在被调用程序中就会修改程序的状态,这时候也就不能还原到之前的状态,只有将当前的状态保存起来,压入栈中,当被调用程序执行完成以后,将当前程序栈中的内容弹出就能实现任务状态的还原,当前函数执行完成以后,调用该函数的状态也需要还原。这时候就实现了先调用的函数最后执行,所以说函数调用是典型的先入后出问题。这也说明为什么栈如此的重要。
原文:http://blog.chinaunix.net/uid-20937170-id-3322943.html
作者: IceLoveInFire丶    时间: 2017-2-19 12:44
厉害了我的哥

作者: GKAirzzzzz    时间: 2017-2-19 12:45
烟雨清寒时 发表于 2017-2-19 12:38
就跟安卓的activity是一样的,全部放到栈里面,这样用户体验是很棒的

恩恩!安卓我不太懂,但是安卓给我的印象就是大量用了一些底层概念,比如到处都是接口、抽象、继承什么的~学习像盖大楼一样~~安卓楼层比较高,他的底层一定有很多好玩的东西~~
作者: GKAirzzzzz    时间: 2017-2-19 12:46
烟雨清寒时 发表于 2017-2-19 12:28
据说是谁

哈哈,我还想发一个贴,叫算法,也是据说说的~~~
作者: 我怕你会哭的    时间: 2017-2-19 13:03
数据结构书里面都有。可以看看。

作者: 黑色旋涡    时间: 2017-2-19 14:44
找本数据结构看看吧,里面很详细的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2