数据结构第二课笔记--------------狄泰软件学院

数据的艺术

程序设计的挑战
(1)利用计算机解决生活的问题
(2)生活中的不同个体存在联系,且关系复杂
(3)如何用计算机程序描绘生活中的个体以及个体之间的联系

计算机能接受处理的是数据,我们可以将数据写入到程序里,然后计算,因此,我们要考虑在程序里面如何用数据来描述客观的事物,来描述生活里面的个体,描述个体之间的关系。

数据的概念
数据在计算机里就是程序的操作对象,可以描述客观事物。
数据的特点
(1)可以输入到计算机
(2)可以被计算机程序处理

微观角度数据的新概念
(1)数据元素:组成数据的基本单位
(2)数据项:一个数据元素由多个数据项组成
(3)数据对象:性质相同的数据元素集合

数据实例分析

struct student                       //数据类型
{
        char* name;
        int age;
};

student s;                         //数据元素
studnet sArray[10];          //数据对象

s.name = "badog-yang";    //数据项
s.age = 18;                        //数据项

数据结构指数据对象中数据元素之间的关系
数据元素之间关系不是对立的,存在某种特定的关系,这些关系即结构。
如:数组中各元素之间存在固定的线性关系

在编写一个“好”的程序前,必须分析待处理问题中各个对象的特性,以及对象之间的关系。

逻辑结构
集合结构:
数据元素之间没有特别的关系,仅仅同属相同集合。
线性结构:
数据元素之间是一一对应的关系
树形结构:
数据元素之间存在一对多的关系
图形结构:
数据元素之间存在多对多的关系

物理结构
物理结构是逻辑结构在计算机中的存储形式
顺序存储形式:
将数据存储在地址连续的存储单元内
链式存储形式:
将数据存储在任意的存储单元
通过保存的地址找到相应的存储单元

数据结构是相互之间存在特定关系的数据元素的集合

原文地址:http://blog.51cto.com/13563176/2060026

时间: 2024-10-11 11:32:36

数据结构第二课笔记--------------狄泰软件学院的相关文章

数据结构第三课笔记----------------狄泰软件学院

程序的灵魂 引出问题程序是否越短越好?程序是不是别人读不懂就证明自己很厉害?数据结构静态的描述了数据元素之间的关系.高效的的程序需要在数据结构的基础上选择合适的算法.算法是特定问题求解的步骤,在计算机中表现为指令的有限序列.算法是独立存在的的一种解决问题的方法和思想,对于算法而言,思想最重要.算法的特性:输入:算法具有0个或多个输入.输出:算法至少有一个或多个输出.有穷性:算法在有限的步骤之后会自动结束而不会无限循环.或者可以说是在可接受的范围内能自动结束.确定性:算法的每一步都会都有确定的的含

数据结构第四课笔记------------狄泰软件学院

程序的效率 问题:如果两个算法都符合功能性需求,那工程中最关心的其他特性是什么?如何比较评判?性价比(效率)是工程中最关注的的算法附加特性!算法效率的度量1.事后统计法:比较不同算法对同一组输入数据的处理时间.缺陷:(1)为了获得不同算法必须编写相应程序(2)运行时间严重依赖硬件以及运行时的环境因素(3)算法的测试数据选取困难2.事前分析估算:依据统计的方法对数据进行估算影响算法效率的主要因素:(1)算法采用的策略和方法(2)问题的输入规模(3)编译器所产生的代码(4)计算机执行速度 int f

数据结构第六课------------狄泰软件学院

图片出自狄泰软件学院工程里面一般采用时间复杂度在 O(n^3) 之前的算法.算法的最好与最坏情况:一般推断算法的最坏情况,当程序在最坏情况都能满足要求是,说明在最好和平均情况都能满足要求. 算法的空间复杂度 (Space Complexity)定义:S(n) = S(f(n))n为算法的问题规模f(n)为空间使用函数,与n有关推导时间复杂度的方法同样适用于空间复杂度如当算法所需要的空间复杂度是常数时,空间复杂度为S(1)S(n+4) = S(n)空间与时间的比较(1)多数情况下,算法的时间复杂度

PHP第二课笔记

★Php的基本概念 快速入门案例 test.php <html> <body> //<?php  ?>是运行在服务端 <?php echo 'hello';   // 问 D ?> </body> </html> ①php是personla homepage ②目前是zend公司负责维护和商业化 ③php是嵌入到html代码 <?php //PHP代码 ?> ④php脚本是运行在服务器端 → ide(集成开发环境) 1.E

VC++编程之第二课笔记

第二课 C++的继承封装多态 简单类型转换 int型转换为char型,会发生截断,丢失精度(3Bytes),有警告. char型转换位int型,不会发生截断,没有警告. 父类子类的类型转换 代码: #include <iostream> using namespace std; class Animal { public:     Animal(){}  //构造函数重载     Animal(int height, int weight){}    //构造函数有参数     void ea

第十三课、类族的结构进化-------------------狄泰软件学院

一.遵循经典设计原则 DTLib中的所有类位于单一继承树 IvalidOperationEXception是新增的异常类,描述某些成员函数在状态不对的时候被抛出 二.改进的关键点 1.EXception类继承自Object类:堆空间中创建异常对象失败时,返回NULL指针,用的是自己的new版本 更改: 2.新增IvalidOperationEXception异常类:成员函数调用时,如果状态不正确则抛出该异常 增加: //非法操作异常 class IvalidOperationEXception:

第三课、初识程序的灵魂------------------------狄泰软件学院

一.初识程序的灵魂 1.数据结构静态描述了数据元素之间的关系 2.高效的程序需要在数据结构的基础上设计和选择算法 高效的程序需要: (1).恰当的数据结构 (2).合适的算法 3.算法是特定问题求解步骤的描述,在计算机中表现为指令的有限序列 (1).算法是独立存在的一种解决问题的方法和思想 (2).对于算法而言:语言不重要,重要的是思想 4.算法的特性 (1).输入:算法具有0个或者多个输入 (2).输出:算法至少有一个或者多个输出 (3).有穷性:算法在有限的步骤之后会自动结束而不会自动循环

第十一课、异常类的构建-------------狄泰软件学院

一.自定义异常类 1.异常的类型可以是自定义的类类型 2.对于类类型的匹配依旧是之上而下的严格匹配 3.赋值兼容性原则在异常匹配中依然适用 所以要 (1).匹配子类异常的catch放在上部 (2).匹配父类异常的catch放在下部 4.异常类是数据结构所依赖的"基础设施"(现代c++库也必然包含充要的异常类族) 二.一步步打造自己的异常类 1.首先是抽象类EXception的编写,既然是抽象类,必然含有纯虚函数,通常的做法都是将析构函数作为纯虚函数 头文件:接口定义 class Exc

第十六课、顺序存储结构的抽象实现----------狄泰软件学院

一.课程目标 1.完成顺序存储结构的抽象实现,既然是抽象实现,自然就是抽象类,不能生成对象 (1).抽象类模板,存储空间的位置和大小由子类完成  (2).这里只实现顺序存储结构的关键操作(增.删.查等) (3).提供数组操作符,方便快速获取元素(要提供const版本的,方便const对象调用) 二.具体实现 这里需注意几点 (1).这里将capacity()函数设置为纯虚函数,说明在这里还不需要实现它,将其留到子类中在实现. (2).数组操作符的返回值一个是引用一个是值,是因为const对象不能