T1223-1-3 刘道广 -01章总结

  • 格式:doc
  • 大小:26.00 KB
  • 文档页数:2

数据结构

第一章 数据结构基础 章节总结

第1章主要讲了数据结构的背景和基本知识并强调了数据结构在程序开发过程的重要意义。计算机科学是一门研究数据表示和数据处理的科学。数据是计算机化的信息,他是计算机可以直接处理的最基本和最重要的对象。在进行科学计算,数据处理,过程控制以及对文件的存储,检索及数据库技术等计算机应用领域中,都有对数据处理的过程。因此要设计一个结构良好,效率很高的程序,必须研究数据的特性及数据间的相互关系及其对应的存储表示,并利用这些特性和关系设计出相应的算法,进一步编出程序。因此可以说,数据结构在编写程序的过程中起到了至关重要的作用。

1.1 数据结构的基本概念和术语

数据是信息的载体,能被计算机识别、存储和加工处理。

数据元素是数据的基本单位,可由若干个数据项组成。

数据项是具有独立含义的最小标识单位。

数据对象也可以称为数据元素类,是具有相同性质的数据元素的集合。

数据结构是指相互之间存在一种或多种关系的数据元素的集合。

数据结构包括:

1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机,逻辑结构有线性结构、树形结构、图形结构和集合结构四种基本结构。

2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言,主要研究路基结构在计算机中的实现方法。常用的数据结构有四种:顺序存储、链接存储、索引存储和哈希存储。

3)数据的操作与处理,定义在逻辑结构上,每种逻辑结构都有一个运算集合。常用的:检索/插入/删除/更新/排序。

1.2 算法和算法效率分析

算法是解决问题的思路和方法,它是对问题求解的多个步骤进行描述的有限序列,其中每一个步骤表示一个或多个操作。

评价算法的好坏是:1)算法是正确的;2)要考虑算法所耗的时间、存储空间(辅助存储)、易于理解,编码,调试。

算法所耗时间是每条语句执行时间之和,每条语句的执行时间是该语句执行次数与执行时间的乘积。

算法求解问题的输入量称问题的规模。算法的时间复杂度T(n)是该算法的时间耗费,是求解问题规模n的函数。当问题规模趋向无穷大时,把T(n)的数量阶称算法的渐进时间复杂度,记为O(n)。常见的时间复杂度排列为:常数阶、对数阶、线性阶、线性对数阶、平方阶、立方阶、K次方阶、指数阶。

1.3 我的收获

第一章数据结构基础老师用了四个学时的时间,系统全面的向我们介绍了数据结构的背景与基本概念,并对高级语言的诸多重要的基本知识做了一复习。记得第一节课老师首先通过一个具体的实例告诉了我们面式思维和点式思维的区别,给我留下了很深的印象,明白了虽然掌握了高级语言,但并不意味着自己掌握了编程的能力。程序是算法和数据结构的产物,而高级语言只是编写程序的工具而已。如何让计算机高效、有效地处理一些数据,就是数据结构的这门课的实质。要做到这一点就必须学会转化自己的思想,设计出合理的数据结构与算法。而且对于数据与数据结构的定义,以及数据的存储结构、逻辑结构和数据的计算有了初步的认识。感觉对于编程又有了一个全新的认识,以前的高级语言只是基础中的基础,现在才是编程学习的开始。而且觉得老师的教学方式十分合理,在学时理论知识的同时,自己亲自动手的实践环节是十分有必要的。因此课外作业的布置是十分必要的,而且老师的马氏程序设计框架,更是让我眼前一亮,以前写程序从来都是想到哪写到哪,而且从不写注释,只是单纯的实现老师交代的功能,不会考虑文件的可读性。这些毛病在学习的时候虽然感觉不到有什么问题,但是当以后接到实际项目的时候,必要的注释,规范的书写格式,不仅可以方便用户的理解与使用,而且对于后期的维护工作,都是必不可少的。所以形成良好的程序书写习惯可以为以后的工作打下良好的基础。然而,由于学生的编程能力层次不齐,有的人能力强一些,而有的人能力就差一些。因此,希望老师能够准备一些分别适应不同学生的课外习题,让不同水平的学生能够选择适合自己的习题,充分发挥出自己的水平。

1.4我的不足

第一章结束了,可以说我对数据结构有了一个全新的认识,对编程也有了全新的理解,而且发现了自己的诸多不足之处。自己对高级语言(C语言、C++)的掌握还不够全面,虽然说语法结构已经很熟悉了,但编程经验还是欠缺太多,特别是对链表知识的掌握还十分的生疏。而数据结构对编程能力有较高的要求,特别是链表,文件的知识在数据结构的编程中引用频繁。因此要想学好数据结构,必须强化这方面的训练,必须多写程序,量变必定会产生质变。在此,也希望老师能够帮助我们着重复习一下链表和文件的知识。

1.5学期打算

鉴于数据结构对于编程的重要性,这学期必须重视对这门课的学习,上课认真听老师讲课,做好笔记,针对老师强调的重难点下课要积极地复习,在此期间尤其重要的是每天都要抽出一定的时间编写代码。这个过程不在于一定要花多少时间,而在于坚持每一天。

1.6课程建议

感觉老师的教学方式十分合理,暂时没有什么意见,如果在后续的学习中有什么想法我一定会和老师及时交流的。