一,男孩别哭

每个抑郁症患者都有被迫害妄想症,而我已经病入膏肓。我不想自己的负面情绪影响到其他人,白天微笑,关了灯就是玻璃心。一个可爱的女孩走进我的生活,而我竟然感到不知所措----不敢接受,不能做到淡泊。茫茫人生,真的不知何去何从。哎,算了,投身代码,编程使我快乐。

二,关于教材

这门课,我的专业课老师给我们选的教材是严蔚敏和吴为民编著的数据结构(C语言版),清华大学出版社。这种教材说不出是好还是不好,我去图书馆看了看,基本上现在流行的教材都是这种风格。毕竟参考书和教材是有区别的。教材书都是一家之言,而教材必须做到严谨。所以说教材大部分知识点肯定不够生动,这也就是为什么教材老师不讲自己看不懂,老师讲过后,自己越看越有味道。

讲义不厌百回读,熟读深思子自知。我希望每个学生能重视老师讲的话

三,绪论

1,什么是数据结构

数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间关系和操作等的学科。

首先,数据结构是一门学科,数据结构作为一门独立的课程在国外是1968年才开始开设的,它是从离散数学(逻辑数学的一个分支,所幸我已经学习过,很有趣)分离出来的一个实践类分支。然后,注意它的研究对象----非数值的对象以及它们之间关系和操作。在计算机科学中起到承上启下的作用。

      如此说来,数据结构可以用一个三元组表示:
                            Data_Structure=(D,R,O)
                    D=data  数据   R=relation 关系  O=operate操作

真不敢相信,我竟然英语会挂科==

2,基本概念和术语

数据(data):是对客观事物的符号表示,在计算机科学中指的是能够输入到计算机中且能被计算机程序处理的符号的总称。

数据元素(data element):数据的基本单位,类似于数据库中的一条记录。

数据项:数据不可分割的最小单位

数据对象(data object):性质相同(指的是数据项的类型和个数相同)的数据元素的集合,是数据的一个子集。

数据的逻辑结构:线性结构(线性表,栈,队列,串,数组),非线性结构 (树,图)

数据的存储结构:顺序存储,链式存储

数据的运算:插入,修改,排序,查找,删除(运算的实现很依赖数据的存储结构)

三,抽象数据类型的实现

作为基本的数据类型,这本书上的代码使用类C语言的一种伪代码实现的,实验课上老师要求我们使用C语言实现。c语言的基本语法还可以,但是对于指针我总是弄混,看来这是短板。

算法的时间复杂度:

           举个栗子:
                       for(int i=1;i<=n;i=i*2){
                                  j++;
                               }
                   这个其实就是计算循环次数的问题,pow(2,x)=n,得出x=log2(n).所以时间复杂度是对数函数。   一般来说: O(1)< O(log2n) <O(n)< O(nlog2n) < O(n2) < O(n3) < O(2n) 

算法的空间复杂度:一个算法的空间复杂度仅仅取决于一个算法所需要的辅助变量所占有的空间,因为程序是处理数据的而不是存储数据的。

一个算法的设计取决于你的选取的逻辑结构,但是一个算法的实现就取决于存储结构了。

采用不同的存储结构,算法处理数据的效率也是不同的。

逻辑结构是唯一的而存储结构是不唯一的。

四,随便说几句

写的乱了,下次得注意。14点30分有实验课,晚上接着写吧。