001-数据结构与算法基本概念、目录

计算机程序设计 = 数据结构 + 算法
数据结构研究变量的管理方式,算法研究解决特定问题的方法。
数据结构分三个层次:逻辑结构(抽象层)、物理结构(结构层)、运算结构(实现层)。

一、数据结构的三大结构

1.1、逻辑结构

数据之间的相互关系称为逻辑结构。逻辑结构指人对数据之间关系的理解和看法,逻辑结构和计算机无关。通常分为四类基本结构:

1、集合结构:这种结构表示数据可以合并成一个整体。
  这是数据之间关系最弱的一种,就仅比那个一点关系都没有的强一点。
2、线性结构:这种结构中数据之间有一对一的关系(如排队)。
3、树型结构:这种结构中数据之间有一对多的关系,这个关系称为父子关系(典型的如细胞分裂)。
4、图状结构或网状结构:这种结构中数据之间有多对多的交叉映射关系。

1.2、物理结构

物理结构描述计算机内部数据之间实际的关系。

1、顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。 结构中的数据元素存放在一段连续的内存空间中,典型代表就是数组。随机访问方便,插入删除复杂。 

2、链式存储结构:在每一个数据元素中增加一个存放地址的指针,用此指针来表示数据元素之间的逻辑关系。这种结构中不同的数据被存储在计算机里不同的地方,他们的物理位置之间完全没有关系。链式结构由多个节点构成,每个节点中包括有效数据和至少一个指针变量。

逻辑结构可以采用多种物理结构实现,它们之间没有明确的一对一的关系。

1.3、运算结构

数据结构的基本操作(运算结构): 
1、创建/销毁 
  分配资源、建立结构、释放资源 
2、插入/删除 
  增加、减少数据元素 
3、获取/修改 
  遍历、迭代、随机访问 
(增删改查) 
4、排序/查找 
  算法应用 

二、数据结构与算法目录应用

物理结构 Java抽象数据类型 特点 应用  
  001-数据结构与算法基本概念      
  002-数据结构之算法的时间复杂度和空间复杂度      
线性结构 003-数据结构-线性结构-数组 数据是连续的;随机访问速度快。  Collection集合中提供了ArrayList和Vector  
004-数据结构-线性结构-ADT-栈与队列【数组方式实现】

数组实现的栈/队列,能存储任意类型的数据。

Collection集合 中自带的栈"(stack)、队列(LinkedList)

   
005-数据结构-线性结构-链表、单链表、双端链表、双向链表

单链表:节点的链接方向是单向的;相对于数组来说,

单链表的的随机访问速度较慢,但是单链表删除/添加数据的效率很高。

   
树型结构   006-数据结构-树形结构-二叉树、二叉查找树、平衡二叉查找树-AVL树      
007-数据结构-树形结构-平衡二叉查找树-红黑树 来存储有序的数据,它的时间复杂度是O(lgn),效率非常之高

 TreeSet、TreeMap、JDK1.8 HashMap

linux进程调度

 
008-数据结构-树形结构-二叉查找树-伸展树      
009-数据结构-树形结构-哈夫曼树[霍夫曼树]     哈夫曼编码  
010-数据结构-树形结构-B树[B-树]     用于关系型数据库的索引(MySQL)  
011-数据结构-树形结构-B+树、B*树     B+树用于关系型数据库的索引(MySQL)  
  012-数据结构-树形结构-哈希树[hashtree]、字典树[trietree]、后缀树      
  013-数据结构-树形结构-决策树       
 

014-数据结构-树形结构-基数树、Patricia树、默克尔树、

梅克尔帕特里夏树( Merkle Patricia Tree, MPT)

     
  015-数据结构-树形结构-其他树      

 

 

 

 

 

发送到

 

posted @ 2019-04-17 09:34  bjlhx15  阅读(321)  评论(0编辑  收藏  举报
Copyright ©2011~2020 JD-李宏旭