数据结构——概述

本来大一下册的时候学过《数据结构》,只怪自己太无知,除了能够理解基本概念外其他的一无所知,上课也算是在坐飞机吧。无奈,现在大二又来看看,复习复习。不求深入的理解只求把书读薄吧。

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的科学。

基本概念和术语:

  数据:是信息的载体,是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

  数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为元素、结点、顶点、记录等。(比如鸡、鸭、鱼、鹅都是动物)

  数据项:指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。(一个数据元素可以由若干个数据项组成)

  数据对象:是性质相同的数据元素的集合,是数据的子集。

  数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

  

  从上到下是一种包含关系。

  逻辑结构与物理结构:

  逻辑结构:是指数据对象中数据元素之间的相互关系。

  逻辑结构分为一下四种:

  1. 集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有任何其他关系。

  2. 线性结构:数据元素除了同属于一个集合外,数据元素之间还存在着一对一的线性关系。

  3. 树形结构:数据元素之间存在着一对多的层次关系。

  4. 图状结构(也称为网状结构):数据元素之间存在着多对多的任意关系。

  

  

  物理结构:是指数据的逻辑结构在计算机中的存储形式。

  物理结构分为两种:

  1. 顺序存储结构:可以看做从具体问题抽象出来的数据模型,把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。通常借助程序设计语言的数组来实现。

  2. 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以不是连续的。通常借助程序设计语言的指针来实现。

  

  数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

  在C语言中,按照取值的不同,数据类型可以分为两类:

  原子类型:是不可再分解的基本类型,包括整型、实型、字符型等。

  结构类型:由若干个类型组合而成,是可以再分解的。例如:整型数组是由若干整型数据组成的。

  抽象:是指取出事务具有普遍性的本质。

  抽象数据类型:是指一个数学模型及定义在该模型上的一组操作。

抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。

描述数据类型的标准格式:

ADT   抽象数据类型名

Data

  数据元素之间逻辑关系的定义

Operation

  操作1

    初始条件

    操作结果描述

  操作2

  ……

  操作n

  ……

endADT

数据结构——概述,码迷,mamicode.com

时间: 2024-10-11 01:37:44

数据结构——概述的相关文章

数据结构-概述(1)

数据结构是计算机存储.组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率. 数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关. 通常有下列四类基本的结构: ⑴集合结构.该结构的数据元素间的关系是"属于同一个集合". ⑵线性结构.该结构的数据元素之间存在着一对一的关系. ⑶树型结构.该结构的数据元素之间存在着一对多的关系

[考研系列之数据结构]数据结构概述

1.脑图 2.数据结构 2.1 抽象数据类型 表示法: (D,S,P) D:数据对象 S:D上的关系集 P:对D的基本操作集 ADT格式 ADT 抽象数据类型名{ 数据对象:<数据对象定义> 数据关系:<数据对象的定义> 基本操作:<基本操作的定义> }ADT 抽象数据类型名 基本操作的格式: 基本操作名(参数表) 初始条件:<初始条件描述> 操作结构:<操作结果描述> 2.2 分类 2.2.1 按值的不同特性 原子类型的值是不能分解的,如C中基

数据结构概述&lt;4&gt;队列

队列也是一种比较常用的数据结构,和栈不同的地方在于它是先进先出的,就像我们平时的排队一样. 由于队列和栈非常相似,就不详细讲述概念了,可以参考上一篇博客数据结构概述<3>栈. 和栈一样,在这里直接给出队列的接口(queue.h),以及接口的数组实现(queue1.c)和链表实现(queue2.c).分别如下: //queue.h void queue_init(int); int queue_empty(); void queue_put(int); int queue_get(); //qu

算法数据结构01 /算法数据结构概述

目录 算法数据结构01 /算法数据结构概述 1. 算法 2. 评判程序优劣的方法 3. 时间复杂度 4. 数据结构 5. python数据结构性能分析 6. 总结 算法数据结构01 /算法数据结构概述 1. 算法 算法概述 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务.一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用. 算法是独立存在的一种解决问题的方法和思想. 对于算法而言,实

数据结构概述&lt;2&gt;链表的基本概念

一 链表的定义 讨论链表之前,先说线性表. 线性表是一种最常用且最简单的数据结构.一个线性表是n个数据元素的有限集合.对于一个非空的线性表,一般存在几个特征:(1)存在唯一的一个被称作"第一个"的数据元素:(2)存在唯一的一个被称为"最后一个"的数据元素:(3)除第一个之外,线性表中的每个数据元素均只有一个前驱:(4)除最后一个之外,集合中每个数据元素均只有一个后继. 最常见的线性表就是数组了.对于数组而言,每个元素的存储空间相邻,其逻辑关系上相邻的两个元素,在物理

数据结构概述&lt;1&gt;

一 数据结构的定义 在严蔚敏老师的<数据结构>一书中,是这么定义数据结构的:数据结构是相互之间存在一种或多种特定关系的数据元素的集合.在很多实际问题中,数据元素并非孤立存在,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构.根据数据元素之间关系的不同特性,通常分为4类,分别为集合.线性结构.树形结构和图状结构. 二 动态集合 在<算法导论>一书里,将所有的数据结构描述为动态集合.即我们使用所有的这些数据结构,都是为了对集合中的元素进行一些简单或者复杂的操作,比如查找

数据结构概述

1.基本概念 1)数据(Data) 数据即信息的载体,是能够输入到计算机中并且能被计算机识别.存储和处理的符号总称 2)数据元素(Data Element) 数据元素是数据的基本单位,又称之为记录.一般,数据元素由若干基本项(或称字段.域.属性)组成. 3)数据类型(Data Type) 数据类型是对数据元素取值范围和运算的限定. 4)数据结构(Data Structure) 数据结构是指数据元素和数据元素之间的相互关系.主要包含下面三方面的内容: 逻辑结构:表示数据元素之间的抽象关系(如邻接关

数据结构概述&lt;3&gt;栈

栈是一种重要的数据结构,其实质也是线性表的一种.但是它只支持两种操作:插入和删除.并且,栈的特点是后进先出,也就是说,栈的操作永远在顶部,插入和删除操作只在栈的顶部进行,所以先插入的栈会堆在底下,而后插入的栈会在栈顶,进行删除的时候,是从栈顶开始,所以新插入的元素反而能优先被删除,我们称之为后进先出.而这种插入和删除操作,在栈的用语里,叫做推进(push)和弹出(pop). 举个例子来说,栈的操作有点像一个老师收上来的作业,先交的作业放在下面,后交的作业放在上面,老师在批阅的时候,总是先从上面的

数据结构概述&lt;3&gt;链表的简单应用

今天介绍两个链表的简单应用. 1.约瑟夫问题 假设有N个人决定选出一个领导人,方法如下:所有人排成一个圆圈,按顺序数数,每次数到第M个人出局,此时,他两边的人靠拢重新形成圆圈.问题是找出哪一个人将会是最后剩下的那个人.下列程序依次读入N和M,并给出最终结果. #include <stdlib.h> #include <stdio.h> typedef struct node* link; struct node { int item; link next; }; int main(