,而是要设计出合适的数据结构,才能有效地解决问题。下面所列举的就是属于非数值计算的具体问题。【例1-1】求一组(n个)整数中的最大值。模型:所有整数算法:数字两两比较由于例1-1所涉及的运算对象是简单的整型,所以程序设计者的主要精力是集中于程序设计的技巧上,而无须重视数据结构。【例1-2】旅馆订房的管理。模型:队列算法:先到先订,先订先得住房,采用先进先出原则。【例1-3】铺设城市的煤气管道。模型:图算法:如何规划使得总投资花费最少(2)树形结构(3)图形结构以上三个图,描述非数值计算问题的数学模型不再是数学方程,而是诸如表、树、图之类的数据结构。(1)线形结构程序设计实质就是对实际问题选择一种好的“数据结构”,学习数据结构可在学习算法的同时,领会其中的程序设计思想。由于数据结构其实质是一种思想,所以它并不取决于具体使用的编程语言——编程语言其实是大同小异的,就像世界各国语言看似不同,其实在大体上都可以以类似的方式去表达同样的意义。通常数据结构都是以C语言为例进行教学的。编程就像是写文章。将词语(算法)按一定的思想(算法)组织在一起。数据结构是编程的灵魂,它给程序开发人员一个开发思路,讲的主要是已经成熟的编程思想和算法,几乎适用于所有开发语言。像学习英语一样,学习编程语言只是让你会说英语,记住很多英语单词,熟悉高级程序语言的语法规则。而学习数据结构才能让程序员写出程序(更漂亮的英语文章)。1.2如何学好数据结构(1)要求掌握基本的C语言知识,掌握模块化程序设计的基本思想,能够利用C语言熟练编写一些简单的程序。(2)要求熟悉TurboC(或兼容的)编程环境,能够编辑、调试及运行C语言程序。(3)掌握各种基本的数据结构,并对各种数据结构的逻辑特性和物理特性有足够的认识。(4)掌握数据结构的常见的操作及其算法,了解评价某个具体算法优劣的方法。(5)多思考、多做练习题、多上机实践。