学习笔记:什么是数据结构 (2019.11.20)

本文探讨了数据结构的定义,强调其与解决问题效率的关系。数据结构涉及逻辑结构(如线性、层次和图结构)和物理存储结构(顺序和链式存储)。抽象数据类型(ADT)是数据结构的核心,它描述数据对象集及其相关操作,独立于实现细节。
摘要由CSDN通过智能技术生成

●没有官方的统一定义!

 “数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”
— Sartaj Sahni,《数据结构、算法与应用》
 “数据结构是ADT(抽象数据类型 Abstract Data Type)的物理实现。”
— Clifford A.Shaffer,《数据结构与算法分析》
 “数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。”
—中文维基百科

但是数据结构算法常常是一起出现

●解决问题方法的效率和什么有关?

①跟数据的组织方式有关

②跟空间的利用效率有关
(尽量避免使用递归函数,计算机不喜欢)

例.写程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数.

//循环
void PrintN ( int N )
{
	 int i;
	for ( i=1; i<=N; i++ )
	{ 
		printf(%d\n”, i );
	} 
	return;
}

当n取很大时(比如100000),递归法就无法输出了,只能用循环法

//递归
void PrintN ( int N )
{ 
	if ( N )
	{
		PrintN( N – 1 );
		printf(%d\n”, N );
	}
	return;
}

③跟算法的巧妙程度有关

●所以到底什么是数据结构??

数据对象在计算机中的组织方式
 逻辑结构
 物理存储结构
数据对象必定与一系列加在其上的操作相关联
 完成这些操作所用的方法就是算法

①逻辑结构:
数据的逻辑结构,简单地理解,就是指的数据之间的逻辑关系。
数据之间的逻辑关系可简单的分为三类:
▲一对一 (线性结构,串)
▲一对多 (层次结构 树)
▲多对多 (图)
②物理结构
指的是数据在计算机存储器中的存放方式(例如:内存中),可以选择集中存放,还是分散存放。
具体表现:顺序存储(地址连续)和链式存储(指针表示逻辑关系)。

●抽象数据类型(Abstract Data Type)

数据类型
 数据对象集
 数据集合相关联的操作集
抽象:描述数据类型的方法不依赖于具体实现
 与存放数据的机器无关
 与数据存储的物理结构无关
 与实现操作的算法和编程语言均无关

只描述数据对象集和相关操作集“是什么”,并不涉及 “如何做到”的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值