数据结构(Java)--基础概念

来源:互联网 发布:windows server iscsi 编辑:程序博客网 时间:2024/06/05 03:38
java作为一种学习工具
数据元素:表示一个事物的一组数据,数据元素是数据的基本单位
数据结构概念包括三方面:
               ①数据的逻辑结构
               ②数据的存储结构
               ③数据的操作
1.数据的逻辑结构:B=(K,R)  K表示元素的个数,R表示元素之间的关系 <>有方向性的关系()无方向性的关系
线性结构:元素之间具有线性结构,及除第一个和最后一个元素外,每个元素有且仅有一个前驱元素和后继元素,第一个元素没有前驱元素,最后一个元素没有后继元素。
树结构:具有层次关系的一种非线性结构
2.数据的存储结构
     (1)顺序存储结构
         顺序存储——使用一组连续的内存单元依次存放数据元素,元素在内存中的物理存储次序体现它们的逻辑次序。
                         注:通常使用程序设计语言中的数组来实现。
    

(2)链式存储结构
     链式存储——使用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻。数据元素间的逻辑关系通过结点间的链接关系来体现。
                    注:通常使用指针记载直接前驱元素或直接后继元素的存储地址。


数据域     地址域

3.数据操作
  • 数据操作指对一种数据结构中的数据元素进行各种运算或处理。每种数据结构都有一组数据操作。
  • 初始化。
  • 判断是否空状态。
  • 求长度:统计元素个数。
  • 包含:判断是否包含指定元素。(contain)
  • 遍历:按某种次序访问所有元素,每个元素只被访问一次。(traverse)
  • 取值:获取指定元素值。
  • 置值:设置指定元素值。
  • 插入:增加指定元素。
  • 删除:移去指定元素。
  • 数据操作定义在数据的逻辑结构上;
  • 数据操作的实现依赖于数据的存储结构。
4.泛型 <T>
  <T>中的T 代表引用数据类型   当引用数据类型创建后,并未赋予初始值时,系统默认赋予的值为null。
          因为编写的类中可以适用于各种引用数据类型,而你并无法具体确定时,使用泛型T 才代替,再使用该类创建对象的同时,确定该引用数据类型即可。
5.算法
  • (1)算法定义:一个算法(algorithm)是一个有穷规则的集合,其规则确定一个解决某一特定类型问题的操作序列。(D.Knuth)
    算法的规则必须满足以下5个特性:
  • 有穷性
  • 确定性
  • 可行性
  • 有输入
  • 有输出
  • (2)时间代价分析
    • 算法的时间效率指算法的执行时间随问题
        规模的增长而增长的趋势,通常采用
      时间 
        复杂度
      来度量算法的时间效率,o表示 
        • 法来记:
           
          T(n)=ο(f(n))
      • 时间代价是一个大体的范围,简单的说就是计算算法从执行到结束所要花费的时间,
      • 而主要的时间花费在循环的过程中,如 for循环,while 循环。
      • 一个简单语句花费一个单位的cpu时间。
  • (3)空间代价分析
      • 算法的空间效率(空间复杂度)指算法在执行时为解决问题所需要的额外存储空间,不包括输入数据和程序指令所占用的存储空间,
      • o表示法来记:
            • S(n)=o(f(n)) 
6.引用数据类型的比较
        !注意不能直接使用== != < > 进行比较
               需要实现Compareble接口
  • Java约定两个对象比较大小用Comparable接口中的compareTo()方法。
  • 当返回值为0时,表示两个对象值相等;
  • 当返回值为正整数时,表示当前对象大;
  • 当返回值为负整数时,表示当前对象小;