数据结构的基础

开发工具与关键技术:数据结构的基础
作者:卢雅婷
撰写时间:2020/04/28

为了更好的提高程序的执行效率这样的问题,让学生更快地编写出更高效的程序,数据结构和算法这门课程也随之发展起来了。在这个广泛采用可视化设计的今天,要想成为一个专业的程序开发人员,至少需要满足

(1) 能熟练地选择和设计各种业务逻辑的数据结构和算法

(2) 至少能熟练地掌握一门程序设计语言

(3) 熟知所涉及的相关应用领域知识

以上三个条件,而第一个条件是其最难的部分,它是区分程序设计人员水平高低的一个重要标志,而瑞士某位著名计算机科学家提出了 “算法+数据结构=程序”的观点,这也说明了数据结构的重要性。

那数据结构的概念是什么呢?

数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合用计算机存储、组织数据的方式。数据结构分别为逻辑结构、(存储)物理结构和数据的运算三个部分。

数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。实现应用程序是“逻辑结构”,存储的是“物理结构”。逻辑结构主要是对该结构操作的设定,物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、希哈结构)等。

数据结构主要研究什么呢?
1.逻辑结构:
(1) 线性结构。结构中的数据元素之间存在着一对一的线性关系。
(2) 树结构。结构中的数据元素之间存在着多的层次关系。
(3) 图结构。结构中的数据元素之间存在着多对多的任意关系。
2.逻辑结构的延伸及基本算法

3.物理结构

4.运算集合(基本操作)
在数据结构中,从逻辑上可以将其分为线性结构和非线性结构
数据结构分类
1、 数组 2、栈 3、队列 4、链表 5、树 6、散列表 7、堆 8、图
2、 如下图所示(注:下图来自于网上)

数据结构的基础

下面来简易的介绍这些分类
1、数组
数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。
2、栈
栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。
3、队列
队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在另一端取出元素,也就是:先进先出。从一端放入元素的操作称为入队,取出元素为出队,
4、链表
链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。
5、树分布图层管理

树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
6、散列表
散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构。
7、堆

堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象
8、图

图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
按照顶点指向的方向可分为无向图和有向图:
图是一种比较复杂的数据结构,在存储数据上有着比较复杂和高效的算法,分别有邻接矩阵 、邻接表、十字链表、邻接多重表、边集数组等存储结构
数据结构的基础就说到这,因为本人学之尚浅,有不对之处请给予矫正,谢谢阅读。