数据结构 基本概念(数据项--数据元素--数据对象-数据类型-抽象数据类型)
//数据结构基本概念
#include<iostream>
using namespace std;/*
数据 – 程序的操作对象,用于描述客观事物
数据的特点:
可以输入到计算机
可以被计算机程序处理
数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型。如:int,float,char等等数据项:一个数据元素由若干数据项组成
数据元素:组成数据对象的基本单位
数据对象:性质相同的数据元素的集合(类似于数组一般)数据元素之间不是独立的,存在特定的关系,这些关系即结构
数据结构指数据对象中数据元素之间的关系
*///声明一个结构体类型
struct Teacher //一种数据类型
{char name[32];//数据项char tile[32];//数据项int age;//数据项char addr[128];//数据项
};int main()
{struct Teacher t1; //数据元素struct Teacher tArray[30]; //数据对象memset(&t1, 0, sizeof(t1));strcpy(t1.name, "name"); //数据项strcpy(t1.addr, "addr"); //数据项strcpy(t1.tile, "addr"); //数据项t1.age = 1;
}
转自:https://www.cnblogs.com/zhanggaofeng/p/5672610.html
在冯 · 诺依曼体系结构中,程序代码和数据都是以二进制存储的,因此,对计算机系统和硬件本身而言,数据类型的概念其实是不存在的。机器指令和汇编语言中,数据对象是用二进制数表示的,内存里存的都是二进制,对于内存里存的内容,可以说 “你认为它是什么,它就是什么”。在高级语言中,为了有效地组织数据,规范数据的使用,提高程序的可读性,方便用户使用,引入了整型,实型等基本数据类型。不同的高级语言会定义不同的基本数据类型。编程时只需知道如何使用这些类型的变量(如何声明,能执行哪些运算等),而不必了解变量的内部数据表示形式和操作的具体实现。
然而当表示复杂数据对象时,仅使用几种基本数据类型显然是不够的。某些语言(如PL/1)试图规定较多的基本数据类型(如数组,树,栈等)来解决这个问题。但实践表明,这不是一个好的办法,因此任何一种程序设计语言都无法将实际应用中涉及的所有复杂数据对象都作为其基本数据类型。所以,根本的解决方法就是允许用户自定义数据类型(User-Defined Data Type)。于是在后来发展的语言(如C语言)中,出现了构造数据类型(也称为复合数据类型)。它允许用户根据实际需要利用已有的基本数据类型来构造自己所需的数据类型,它们是由基本数据类型派生而来的,用于表示链表,树,堆栈等复杂的数据对象。例如C语言中构造数据类型的典型代表就是结构体。C语言通过指针和类型强转,使我们可以对一块内存进行“你希望它代表什么,它就代表什么”的操作,从而实现在更深的层次上控制计算机。
尽管构造数据类型机制使得某些比较复杂的数据对象可以作为某种类型的变量直接处理,但是这些类型的表示细节对外是可见的,没有相应的保护机制,因而在使用中会带来许多问题。例如,用户可在一个模块中随意修改该类型变量的某个成分,而这种修改对处理该数据对象的其他模块又会产生间接的影响,这对于一个由多人合作完成的大型软件系统的开发是很不利的。于是又出现了“信息隐藏”和抽象数据类型的概念。
所谓抽象数据类型(Abstract Data Type,ADT)是指这样一种数据类型,它不再单纯是一组值的集合,还包括作用在值集上的操作的集合,即在构造数据类型的基础上增加了对数据的操作,且类型的表示细节及操作的实现细节对外是不可见得。之所以说它是抽象的,是因为外部只知道它做什么,而不知道它如何做,更不知道数据的内部表示细节。这样,即使改变数据的表示和操作的实现,也不会影响程序的其他部分。抽象数据类型可达到更好的信息隐藏效果,因为它使程序不依赖于数据结构的具体实现方法,只要提供相同的操作,换用其他方法实现时,程序无需修改,这个特征对于系统的维护很有利。C++中的类(Class)是抽象数据类型的一种具体实现,也是面向对象(Object-Oriented)程序设计语言中的一个重要概念。从结构体过渡到类是顺其自然的事情,但是不能将C++看成是带类的C,因为它带来的是思考和解决问题角度的转变。不同于面向过程的程序设计,在面向对象程序设计中,程序员面对的不再是一个个函数和变量,而是一个个对象。每个对象包含两个部分:数据和方法,数据用来保存对象的属性,而方法用来完成对数据的操作。对象与对象之间是通过消息进行通信的。
转自:https://blog.csdn.net/weixin_42257806/article/details/80892797
数据结构 基本概念(数据项--数据元素--数据对象-数据类型-抽象数据类型)相关推荐
- 数据结构基本概念和术语(数据、数据元素,数据对象,数据项)及举例描述
1.数据(Data) 是对信息的一种符号表示.在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称.如图象.声音等都可以通过编码而归之于数据的范畴. 2.数据元素(Data Eleme ...
- 数据结构考研:数据、数据元素、数据项、数据对象、数据结构的区别/详细解释(计算机/软件工程/王道论坛)
一.问题背景 博主最近在准备2020年春招复习数据结构这门功课时,采用了王道论坛的<2020年数据结构考研复习指导>这本书,该书的第一章节便是数据结构的基本概念:数据.数据元素.数据项.数 ...
- 白话数据、数据项、数据元素和数据对象的概念和联系。
数据.数据项.数据元素数据对象是学习数据机构中需要了解的第一个基本概念.特以此文记录我对数据.数据项.数据元素数据对象的白话描述和理解. 例如现在我们的电脑里有一个500M的视频文件,这一个5 ...
- 简述数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型
1.数据:描述客观事物的数字.字符以及能输入机器且被处理的各种符号的集合. 2.数据元素:数据元素是组成数据的基本单位,通常称为记录. 3.数据项:不可分割的最小单位,具有独立含义. 3.数据对象:性 ...
- 数据元素、数据项、数据对象的概念详解
数据元素:数据的基本单位 数据项 :独立包含的数据最小单位 若干数据项组成一个数据元素 数据对象:相同数据元素的集合 若干数据元素组成数据对象
- 数据结构之数据、数据元素、数据项、数据对象之间的关系
首图 # 前言 博主介绍: -- 本人是小奇,一个喜欢读书.交友.技术分享的Java程序员,更喜欢整理分享一些Java面试题,如果大家有需要可以关注我的公众号『小奇Java面试』领取资料. 文章目录 ...
- 数据 数据元素 数据项 数据对象
文章目录 数据.数据元素.数据项和数据对象 数据 数据元素 数据对象 数据元素和数据对象 数据结构 数据结构包括以下三个方面的内容 逻辑结构 物理结构(存储结构) 逻辑结构与存储结构的关系 逻辑结构的 ...
- 数据,数据元素,数据项,数据对象
基本概念和术语 程序设计 = 数据结构 + 算法 1.数据 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合. 数据不仅仅包括整型,实型等数值类型, ...
- 数据结构、数据、数据元素、数据项的区别
场景: 数据.数据元素.数据项.数据对象.数据类型.数据结构的区别 数据 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合. 数据不仅仅包括整型,实 ...
最新文章
- oracle io profile,ORACLE 中 PROFILE的管理
- KALI LINUX文件名乱码,在kali linux之下 下载并解压的文件名呈现乱码 解决方案
- Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control(流量控制)的基本操作
- TripleDES加密解密
- 完全搞懂傅里叶变换和小波(3)——泰勒公式及其证明
- Windows10系统Python语言利用Pywin32模块模拟鼠标点击
- 用时间分类能量再用能量分类时间
- [转]Oracle DB 执行用户管理的备份和恢复
- Linux命令:dd、iostat、sar
- java基础之java中的基本数据类型
- macos安装低版本php,mac下安装多个版本PHP及切换
- 武汉大学 RSIDEA 团队开源LoveDA:可同时推进语义分割和迁移学习
- h3c交换机配置telnet_H3C路由器交换机配置 命令行操作基础 视频学习
- 【面试题】华为20道大数据面试题整理
- TEMPO ESTIMATION近几年文章总结
- Django之Model操作之select_related和prefetch_related【ORM篇八】
- 高等数学期末总复习 DAY6.洛必达求极限、不等式单调性证明、判断拐点、曲率以及曲率半径
- Linux 系统 网卡RTL8723BE 信号差不稳定的解决办法
- 电缆公司如何面对企业改革?MES系统打造智能工厂
- Android左右滑动切换图片