Java 数据结构基本分析

    今天大概温习了一下数据结构相关知识,在此小结,以备以后查阅。

 

数据结构是什么?应该如何定义?简单的说,数据结构是研究数据的存储,数据之间的关系,及对数据实现各种操作的一门科学。

以下就行数据结构概念三个方面结合Java中常用数据结构进行实例分析(数据结构大同小异思想都一样),以此更直观的链接数据结构相关概念。

 

数据存储:

例如对一个工厂员工的登记表,用计算机管理登记表格,把工厂中所有员工用一个格式文件存储下来,像一个关系型数据库结构,每一条记录表示一个员工,员工包括工号,姓名,年龄等,每条记录按照从下到大顺序排列。

 

因为每个员工的属性相同,将每个员工的属性集合抽象成一个独立的数据单位(例如:可以使用ArrayList, Vector进行数据存储,然后通过JVM对底层内存,磁盘进行操作实现物理存储

 

数据关系:

这时可以将数据单位中的集合成为数据集合,我们将这种数据之间关系成为线性关系,也就是说该文件的逻辑结构为线性结构,也称该文件为一个线性表,在这种结构中,计算机内可以采用多种方法存储,只要体现出这种线性关系就行(例如:可以用ArrayList也可以用Vector只要体现这种线性关系即可)。

 

数据关系可以通过如下方式进行管理,通过Java面向对象方式进行数据关系管理。

public class Employee {

	// 工号
	private long id;
	
	// 姓名
	private String name;
	
	// 年龄
	private int age;
}

 

 此种关系为线性关系,数据结构中关系分为线性关系(如上边的员工关系,员工每个属性都相同,依次排开每个结构都相同)和非线性关系(如机房中的所有计算机的关系,没两个计算机都有可能有关系,有联系,这时候的数据关系可以表示为图关系

 

关系是指数据元素之间存在逻辑关系,也称为数据的逻辑结构,数据在计算机内的存储表示,称为数据的存储结构或者物理结构。

逻辑结构体现的数据库元素之间的逻辑关系,换句话说就是从操作对象中抽象出来的数学模型,因此又称为抽象结构。

 

存储结构是数据在计算机内的表示,又称物理结构,它包括数据元素的表示和关系的表示,由于映像的方法不同,所以同一数据结构可以映像两种不同的数据结构:顺序映像(顺序存储结构,一般为一维数组等)非顺序映像(非顺序存储结构,一般为链表,散列存储,索引存储等)

 

数据操作:

还是上边的文件,比如对于这个文件我们可以进行如下操作(以ArrayList为例),如果某个员工离开了工厂(remove(index), remove(obj)),如果新来一个新员工(add(obj)),新年开始新员工增加了一岁(remove(index/obj) -> add(obj) || set(index, obj)), 比如根据员工的工号进行降序排列,或者进行升序排列等(可用使用帮助类Collections.sort(collection))

 

数据结构所要研究的主要分三个方面:

1.研究数据之间的客观联系(逻辑结构)

2.研究数据在计算机内部的存储方法(存储结构)

3.研究如何在数据的各种结构(逻辑的和物理的)上实施有效的操作或处理(算法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值