2007年的软考中级职称--软件设计师, 终于被我考过了!
这确实值得可喜可贺,之前的几次都因为基础分差一些而导致未通过,没考好的原因嘛,也是多种多样。这一次考前还是用功看了一些书,再加上这次考题的确比较简单,所以,我过了!
但是,感觉成就感似乎还是没那么强,再加上年底还要参加系统分析师的考试,所以就想着把这一路学习的知识写出来,对自己是个提高,对别人也是个参考。
在写的过程中,有任何问题或不对的地方,请联系我,可以留言,也可以发邮件给我,我的邮箱:amber_hup365@yahoo.com.cn 大家共同进步,共同探讨。
软考,是计算机软件专业人士的职称和水平考试,代表了中国软件资格认证的较高水平,在国内外均有较高的权威性。在国内,部分国有企业以此为提高工资的依据;在国外,也有一些国家认可此项认证。当然还会有其它的一些好处。总之,考它没错了!
我参加的是软件设计师的考试,其原型就是最开始软考的工程师的级别的考试。后来软考改革,这才分了许多诸如网络工程师、测试工程师之类的考试。
软件设计师,顾名思义,就是设计软件的,其对软件的各个方面都有考察,比较全面。
今天,我就从软件设计师最核心的内容---数据结构开始谈起。
数据结构是什么呢?数据结构(Data Structure)就是“一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科”(摘自严蔚敏版数据结构)。而算法是建立在数据结构之上的,是数据而不是算法才是系统构造的关键因素。这种观点导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一,因为对象就是一种对数据及其关系的处理方法。
用公式化的语言来描述就是:
用一个二元组来表示数据结构 DS = {D, R},D是数据对象(即操作对象),为非空有限集合;R是该数据对象所有数据成员之间关系的有限集合(即操作对象之间的关系和操作)。请注意这里的描述:D是非空的,而R是可以为空的。一个数据结构,必须要有数据,即操作的对象,而数据之间的关系则可以为空,不过目前我似乎没见到有什么数据不存在操作关系的。另一个需注意的是有限,数据及其上的关系都是有限的。
数据结构的基本操作有:插入、删除、更新、查找、排序。
按照元素之间关系的不同特性分为四种基本结构:集合、线性结构、树形结构、图状结构或网状结构(摘自严蔚敏版数据结构)。
而按照数据的逻辑结构,一般把数据结构分为线性结构和非线性结构,非线性结构又分为树形结构和图结构。按照数据的存储结构,可以把数据结构分为顺序存储结构、链式存储结构、索引存储结构和散列存储结构。
图一