python内置数据结构教程第四版答案_李春葆数据结构教程第4版笔记和课后习题答案...

本文详细介绍了数据结构的基本概念,包括数据元素、数据对象和逻辑结构,强调了逻辑结构与存储结构的区别。文章阐述了四种基本的逻辑结构——集合、线性结构、树形结构和图形结构,并探讨了顺序存储结构的特点与优缺点。
摘要由CSDN通过智能技术生成

第1章 绪 论

1.1 复习笔记

一、数据结构概述

1.数据结构的定义

(1)基本概念

数据是描述客观事物的数和字符的集合,是计算机能操作的对象的总称,也是计算机处理信息的某种特定的符号表示形式。

(2)相关术语

①数据元素

数据元素又称元素、节点、顶点、记录等。数据元素是数据的基本单位。有时候,一个数据元素可以由若干个数据项组成。

②数据项

数据项又称字段或域,它是具有独立含义的最小数据单位。

③数据对象

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

(3)数据结构的内容

①数据元素之间的逻辑关系,即数据的逻辑结构,它是数据结构在用户面前呈现的形式。

②数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,又称数据的物理结构。

③施加在数据上的操作,即数据的运算。

(4)逻辑结构

数据的逻辑结构是从逻辑关系(主要是指数据元素的相邻关系)上描述数据的,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

(5)存储结构

数据的存储结构是逻辑结构用计算机语言的实现或在计算机中的表示(又称映像),也就是逻辑结构在计算机中的存储方式,它是依赖于计算机语言的。一般只在高级语言(例如C/C++语言)的层次上讨论存储结构。

数据的运算最终需在对应的存储结构上用算法实现。

总之,数据结构是一门讨论“描述现实世界实体的数学模型(通常为非数值计算)及其之上的运算在计算机中如何表示和实现”的学科。

(6)数据结构的表示

对于一种数据结构,其逻辑结构总是惟一的,但它可能对应多种存储结构,并且在不同的存储结构中,同一运算的实现过程可能不同。

描述数据结构通常采用二元组表示:

B=(D,R)

其中,B是一种数据结构,它由数据元素的集合D和D上二元关系的集合R组成,即:

D={di | 1≤i≤n,n≥0}

R={rj | 1≤j≤m,m≥0}

其中di表示集合D中的第i个数据元素(或节点),n为D中数据元素的个数,特别地,若n=0,则D是一个空集。rj表示集合R中的第j个关系,m为R中关系的个数,特别地,若m=0,则R是一个空集,表明集合D中的数据元素间不存在任何关系,彼此是独立的,这和数学中集合的概念是一致的。

R中的一个关系r是序偶的集合,对于r中的任一序偶(x,y∈D),把x称作序偶的第一节点,把y称作序偶的第二节点,称序偶的第一节点为第二节点的前驱节点,称第二节点为第一节点的后继节点。若某个节点没有前驱节点,则称该节点为开始节点;若某个节点没有后继节点,则称该节点为终端节点。

对于对称序偶,即∈R,且∈R(x,y∈D),可用圆括号代替尖括号,即(x,y)∈R。

数据结构还可以利用图形形象地表示出来,图形中的每个节点对应一个数据元素,两节点之间的连线对应关系中的一个序偶。

2.逻辑结构类型

(1)集合

集合是指数据元素之间除了“同属于一个集合”的关系外,别无其他关系。

(2)线性结构

线性结构是指该结构中的节点之间存在一对一的关系。其特点是开始节点和终端节点都是惟一的,除了开始节点和终端节点以外,其余节点都有且仅有一个前驱,有且仅有一个后继。线性表就是一种典型的线性结构。

(3)树形结构

树形结构是指该结构中的节点之间存在一对多的关系。其特点是每个节点最多只有一个前驱,但可以有多个后继,且终端节点可以有多个。二叉树就是一种典型的树形结构。

(4)图形结构

图形结构是指该结构中的节点之间存在多对多的关系。其特点是每个节点的前驱和后继的个数都可以是任意的。图形结构可能没有开始节点和终端节点,也可能有多个开始节点、终端节点。

树形结构和图形结构统称为非线性结构。

3.存储结构类型

(1)顺序存储结构

①存储方式

该结构是把逻辑上相邻的节点存储在物理位置上相邻的存储单元里,节点之间的逻辑关系由存储单元的邻接关系来体现。通常顺序存储结构是借助于计算机程序设计语言的数组来描述的。

②优点

a.节省存储空间;

b.可实现对节点的随机存取。

③缺点

不便于修改,对节点进行插入、删除运算时,可能要移动一系列的节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值