02-数据结构_概述

来源:互联网 发布:深圳程序员工资统计 编辑:程序博客网 时间:2024/05/24 01:11

一, 书籍

1,《数据结构(C语言版)》
   作者: 严蔚敏,吴伟民

   概述: 伪算法(只有解题思路)

   资源: http://download.csdn.net/detail/wuqinfei_cs/5772527

2,《数据结构》算法实现及解析
   作者: 高一凡   

   概述: 将上本书上的 伪算法 全部用 程序(C/C++)实现 

   资源: http://download.csdn.net/detail/wuqinfei_cs/5773069


二, 数据结构定义

1)如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,
2)以及在此基础上为实现某个功能(查找,删除,排序)而执行的相应操作,(这个相应操作, 也叫算法) 
称之为数据结构. 
即 存储+操作

狭义的定义

    数据结构 = 个体 + 个体的关系
    解决数据存储(内存)的问题

三, 算法

通俗的定义

    解题的方法和步骤

狭义的定义

    对存储数据的操作
    依赖存储方式的,即存储方式不同,算法也不同

衡量算法的标准    

    1, 时间复杂度
        程序大概要执行的次数,而不是整个程序执行的时间.
        因为计算机的性能有差异,执行时间无法作为衡量的标准.
        程序最关键的那个步骤,执行的次数作为衡量的标准.
    2, 空间复杂度
        算法执行过程中大概所占用的最大内存
    3, 难易程度        
        实现的难易,理解的难易(可读性)
    4, 健壮性        
 补充:
    搞研究, 一般关注 第1点和第2点
    写程序, 一般关注 第3点


四, 数据结构的地位

  数据结构是软件中最核心的课程.

    1, 编程语言(C/C++,Java)
        栈 和 堆 , 不是内存中一块区域, 一个叫栈, 一个叫堆
        所谓的栈内存和堆内存, 实际上是分配内存的算法不一样
        栈内存, 以压栈出栈的方式分配内存
        堆内存, 以堆排序的方式分配内存
    2, 操作系统
        队列, 跟先后顺序有关.
    3, 编译原理
        树, 语法树. 
    4, 数据库
        数据结构的简化版.

  什么是程序

    程序 = 数据的存储 + 数据的操作  + 可以被计算机执行的语言
            = 数据结构     + 算法             + ...