数据结构简介

这是一门很深的学问,我们先从整理把握一下

数据结构:是由相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。

1.逻辑结构

指数据元素之间的逻辑关系,分两种,线性结构和非线性结构,具体有

  • 集合:数据元素之间只有"同属于一个集合"的关系
  • 线性结构:数据元素之间存在一个对一个的关系
  • 树形结构:数据元素之间存在一个对多个关系
  • 图形结构或网状结构:数据元素之间存在多个对多个的关系

2.存储结构:指数据的逻辑结构在计算机存储空间的存放形式,常见的存储结构有 顺序存储,链式存储,索引存储,以及散列存储(哈希存储)

3.数据运算结构:检索、插入、删除、更新和排序等。

 

 

我们主要学习它的逻辑结构的前三种,具体对应java来说,就是堆栈、队列、二叉树等的顺序存储,链式存储两种存储结构的具体实现,哈希表的散列存储具体实现,能很清楚的知道原理,当然自己能实现更好,那就到达相应的一个高度了,就此打住,有时间有精力有需要再去深究

线性结构:是n个数据元素的有序(次序)集合

线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构

关于广义表,是一种非线性的数据结构,常见的非线性结构有:树(二叉树等),图(网等),超文本。

 

 

线性表(linear list)逻辑结构是最基本、最简单、也是最常用的一种数据结构。

线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。

它有四个基本特征:

  1.集合中必存在唯一的一个"第一个元素";

  2.集合中必存在唯一的一个"最后的元素";

  3.除最后元素之外,其它数据元素均有唯一的"后继";

  4.除第一元素之外,其它数据元素均有唯一的"前驱"。

  数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。

  如(a1,a2,a3,.....,an),a1为第一个元素,an为最后一个元素,此集合一定为一个线性结构的集合。

相对应于线性结构,非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后继。

  在实际应用中,线性表都是以栈、队列、字符串等特殊线性表的形式来使用的,常用的线性结构有:线性表,栈,队列,双队列,数组,串。

 

链表是一种物理存储单元上非连续、非顺序的存储结构,即数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构

 

线性表是站在逻辑结构层次,链表是站在存储结构层次

 

链表(Linked list)是一种常见的基础数据结构,可以是线性链表(也可以是非线性链表),但是并不会按线性的顺序存储数据,而是在每一个节点里存取数据域之后,还存下一个节点的指针(Pointer)

 

posted on 2013-11-21 22:17  lovebeauty  阅读(643)  评论(0编辑  收藏  举报

导航