首页 > 代码库 > 读后感

读后感

                 java与c语言对与栈队列以及字符串的对比

 

 

    这两天把程杰写的<大话数据结构>又重新开始看了,发现从java的角度来看这本书,与从c的角度来看的话区别很大.从中也深切的体会到了面向对象的语言(java)与面向过程的语言(c)的区别.

         在重新阅读这本书的时候,因为自己已经开始java程序的开发,发现在c语言中实现很复杂的结构在java中可以很简单的就实现出来.比如说,栈和队列

         在c语言中栈和队列都有顺序存储结构的方式,其使用的是数组的方式来进行,但是数组有个不好的地方是需要初始化其内存大小,当达到其初始化最大值后,对于内存的扩充不是很方便(或者说是相当的不方便).而且数组中对于元素的删除也不是很好,(在数组中删除一个元素后,其所占用的内存空间还存在,或者更形象的说它的下标一般是不变的(当然我们可以改变,但是需要我们手动的去移动数组中的元素,那么在队列中,每次我们插入一个元素都会放在数组的后面也就是说数组的下标会越来越大,一直到它的最大值,而删除时是先删除先插入的,那么删除的也就是前面的,这时就会遇到一个问题,当我们下标达到最大值的时候,可能我们前面的数组中有很多空余的位置,这就造成了空间的浪费.在c中给我们的解决方案是循环队列的方式,即当下标达到最大值的时候,我们在插入数据的时候,就会把数据查到数组的前面,但是这样还是不能解决数组空间固定的问题),)在链表中,我们一般采用的是指针的方式,这时元素只知道自己的下一个元素是谁,对于自己的下下元素以及上一个元素是不知道的,(后来有双向链表可以直到自己的上一个元素是谁),但是链表的存储方式对于元素的查找效率很慢,因为他需要遍历整个链表

         使用java的时候,因为java中有一个名为集合的存储方式,使用集合我们可以很方便的对元素进行栈以及队列的封装,(其中底层实现应该与c语言一样,但是java语言帮我们把这些东西都封装了起来,我们不必关心它是怎么实现的,只需要调用封装好的方法即可完成对集合结构化的封装)极大的增加了我们的开发效率,减轻我们的开发负担.

在字符串上,java有一个自己的封装类String感觉里面的方法直接是对串的操作.

读后感