个人关于数据结构的看法
2013-10-23 20:10
253 查看
最近在做数据结构的课程设计,发现数据结构很重要,里面好多数据结构类型我个人认为都是基于链表的使用。学习数据结构一定要理解链表的思想。这个思想其实是很简单,但是有很多人就是不能理解。链表的本质就是结点之间的联系,对于初学者(包括我自己),要真正的做到了解其本质。那么就要学会对结点进行增,删,改。(这个在很多书上都有进行介绍),链表的这种思想在数据结构中应用的很广泛(包括树,图)。
当你学会这个思想后,你可以用C语言,C++,java等语言进行链表,二叉树,图等的操作。还有人可能会说中在java中没有指针,这个很难做到。在C语言中使用结构体来定义结点,通过指针来下一个对象。在java中的实现机制是通过类来创建结点,通过对象引用来指向下一个结点。了解j到这个两个本质的差别,那么他们的做法是一样的。其实你要做一个小东西,当你想通它的做法后,可以用任意一种语言进行实现(包括汇编语言)。
对于数据结构,本人认为是十分的强大,也许你还不认识到这一点。学习过数据结构后, 你可能会认为很没有用,那么我只能说你还不会只用数据结构的那种想法,学习数据结构的目的不是让你去记住里面的几种结构类型,真正的是让你学会那种思想,灵活使用数据结构类型可以提高效率,减少代码长度。。链表在数据结构中很重要,但是它的实现的本质就是一个特别的二叉树,而二叉树也可以说是一个特别的图,有时候我们在开发时其实不需要去构建树但是可以时候树中的父母结点和叶子结点的关系,用一个简单的链表将要实现的叶子结点连接起来,然后给增加某些特别的属性,有规律的属性,再做一个字典表,通过这个属性与字典表就行比较可以找打该结点的属性,基于这种想法,那么可以很大的减少内存的使用。
以上是个人看法。
当你学会这个思想后,你可以用C语言,C++,java等语言进行链表,二叉树,图等的操作。还有人可能会说中在java中没有指针,这个很难做到。在C语言中使用结构体来定义结点,通过指针来下一个对象。在java中的实现机制是通过类来创建结点,通过对象引用来指向下一个结点。了解j到这个两个本质的差别,那么他们的做法是一样的。其实你要做一个小东西,当你想通它的做法后,可以用任意一种语言进行实现(包括汇编语言)。
对于数据结构,本人认为是十分的强大,也许你还不认识到这一点。学习过数据结构后, 你可能会认为很没有用,那么我只能说你还不会只用数据结构的那种想法,学习数据结构的目的不是让你去记住里面的几种结构类型,真正的是让你学会那种思想,灵活使用数据结构类型可以提高效率,减少代码长度。。链表在数据结构中很重要,但是它的实现的本质就是一个特别的二叉树,而二叉树也可以说是一个特别的图,有时候我们在开发时其实不需要去构建树但是可以时候树中的父母结点和叶子结点的关系,用一个简单的链表将要实现的叶子结点连接起来,然后给增加某些特别的属性,有规律的属性,再做一个字典表,通过这个属性与字典表就行比较可以找打该结点的属性,基于这种想法,那么可以很大的减少内存的使用。
以上是个人看法。
相关文章推荐
- java 实现数据结构之队列
- C#与数据结构--树论--红黑树(RED BLACK TREE)
- Python开发技术详解-笔记_第04章-内置数据结构
- C数据结构部分代码
- 【数据结构之排序11】各种内部排序方法的比较和选择
- C 项目案例实践(1)数据结构之链表(0)
- 使用PowerDesigner画ER图详细教程
- 大话数据结构十:字符串的模式匹配(BF算法)
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- 怎么选择kernel同步数据结构(seplock,atomic,spin,sem,mutex,preempt_disable)
- 数据结构之二叉树
- 数据结构-----双向循环链表
- 数据结构----循环链表
- 数据结构-----双向链表
- 海量数据问题 解决方法 (2014年4月3日更新)
- 数据结构——线性表
- 数据结构:二分法查找
- 数据结构--链表
- Quadtrees UVA297
- 微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相