数据结构之数据的逻辑结构和与存储结构之间的关系


theme: channing-cyan

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情

数据的逻辑结构

数据的逻辑结构是面向用户的,我们一般采用表格、图等用户容易理解的形式来来表示。比如:学生成绩表、座位表、使用树状图表示上下级关系。 - 如图; image.jpeg

image.jpeg 为了更方便的描述数据的逻辑结构,通常采用二元组表示数据的逻辑结构。 - 公式 ``` B=(D,R) // B是一种逻辑数据结构,D是数据元素的的集合,在D上数据元素可能存在多种关系,R是所有关系的集合

D={d「i」|0<=i<=n-1,n>=0} R={r「j」|0<=j<=m-1,m>=0} // 注:数据结构中元素的逻辑序号统一从0开始。 ```

逻辑结构的类型

在数据的应用中,很多都是用不同的类型呈现的逻辑结构,若结构是非空的,但总的归纳起来无非就以下三种类型。

集合

结构中的数据元素之间除了"同属于一个集合"的关系外没有其他关系,,并没有打破数学中集合的概念。

线性结构

有且仅有一个开始元素和终端元素,并且所有元素最多只有一个前驱元素和一个后继元素。 - 开始元素:若某个元素没有前驱元素,则为开始元素。 - 终端元素:若某个元素没有后继元素,则为终端元素。 - 前驱元素:序偶的第一个元素为第二元素的前驱元素。 - 后继元素:第二元素为第一元素的后继元素。

树形结构

有且仅有一个开始元素(根结点),有若干个终端元素,每个元素有0个或若干个后继元素,除了开始元素以外,每个元素有且仅有一个前驱元素。

数据的存储结构

数据的存储结构应正确的反映数据元素之间的逻辑关系。存储结构是逻辑结构在内存中的 映像。 - 举例:使用java中的对象数组来储存科目成绩表。

```java //学生类 class Student1 { // 存放学号、姓名、分数等数据 int num; String name; int score; // 构造方法 public Student1(int num1,String name , int score1) { num=num1; name=name1; score=score1; } } //定义对象数组存放成绩表 Student1 st=new Student[50]

st[0]=new Student1(0001,"ikun",97); st[1]=new Student1(0002,"ikun2",56); //······ } } ```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值