数据结构 基本概念(数据项--数据元素--数据对象-数据类型-抽象数据类型)

article/2025/11/5 10:40:07
//数据结构基本概念
#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


http://chatgpt.dhexx.cn/article/rbfDQdVZ.shtml

相关文章

根据结构体数组中某一数据项对结构体数组排序

/* *copyright(c) 2018,HH *All rights reserved. *作 者&#xff1a;HH *完成日期&#xff1a;2018年8月17日 *版本号&#xff1a;v1.0 * *问题描述:输入结构体数组&#xff0c;并根据结构体中的某一数据项对整个结构体数组进行排序 *输入描述&#xff1a;&#xff1b; *程序输…

点击echarts柱状图动态改变数据项颜色样式

首先附上参考文章连接&#xff1a;https://blog.csdn.net/weixin_42870683/article/details/103528254添加链接描述 今天来实现点击echarts柱状图&#xff0c;动态改变柱状图数据项颜色样式的案例。只要认真做&#xff0c;很容易学会~ 首先引入ECharts.js文件 <!-- 引入 …

数据结构考研:数据、数据元素、数据项、数据对象、数据结构的区别/详细解释(计算机/软件工程/王道论坛)

一、问题背景 博主最近在准备2020年春招复习数据结构这门功课时&#xff0c;采用了王道论坛的《2020年数据结构考研复习指导》这本书&#xff0c;该书的第一章节便是数据结构的基本概念&#xff1a;数据、数据元素、数据项、数据对象、数据结构。但该书对这几个容易混淆的概念…

数据,数据元素 数据项,数据对象的详细理解

1.数据(Data)&#xff1a;数据就是用户输入到计算机被计算机程序处理的一些符号&#xff0c;比如图片还有声音等.... 2.数据元素(Data Element)&#xff1a;是数据的基本单位&#xff0c;数据元素用于完整的描述一个对象&#xff0c;比如一个学生表&#xff0c;学生表也是由 数…

element el-transfer穿梭框的使用,自定义穿梭框的数据项

本文概述基本穿梭框效果自定义数据项实现右侧列表元素变化时触发方法 本文概述 查看element官方文档可以了解到 el-transfer穿梭框的基本使用方法&#xff0c;本文主要介绍数据项的自定义渲染和右侧列表元素变化时触发方法的实现。 自定义数据项&#xff0c;除了基本的el-tra…

数据结构之数据、数据元素、数据项、数据对象之间的关系

首图 # 前言 博主介绍&#xff1a; -- 本人是小奇&#xff0c;一个喜欢读书、交友、技术分享的Java程序员&#xff0c;更喜欢整理分享一些Java面试题&#xff0c;如果大家有需要可以关注我的公众号『小奇Java面试』领取资料。 文章目录 首图 前言 文章目录 关键字定义 1、数…

数据、数据元素、数据项、数据对象的理解

理解数据结构与算法时&#xff0c;觉得大多数的书上讲的定义特别抽象&#xff0c; 数据、数据元素、数据项、数据对象这四个概念特别难懂 本人理解如下&#xff1a; 假设有两张表&#xff0c;A表为人员表&#xff0c;B表为课程表&#xff0c;这两张表就是数据 、 而单独的一…

数据结构中数据、数据对象、数据元素、数据项之间的关系

数据、数据对象、数据元素、数据项 我们在学习数据结构时首先熟悉的一定是这四个名词&#xff0c;那么在数据家族里这四位成员都是什么关系呢&#xff1f; 严蔚敏的数据结构c语言版一书中解释是这样的&#xff1a; 数据&#xff1a;是客观事物的符号表示&#xff0c;是所有能…

快速理解数据,数据对象,数据元素,数据项间的关系

个人学习路途的记录&#xff0c;有问题可在评论区留言&#xff0c;随缘在线 —————————————————分割线————————————————————- 由于看了较多的文章&#xff0c;并没有找到一篇胎教级的描述&#xff0c;所以个人总结了一下。 首先是教科…

数据、数据元素、数据项、数据对象的介绍和理解

最近在读《大话数据结构》这本书 第一章上面的介绍数据结构相关概念 总结如下图&#xff1a; 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 对于数据 数据对象 数据元素 数据项 这四个概念 理解的不是很好 我先说下课本上是怎么说的 然后再根据自己和网上的理…

数据,数据元素,数据项,数据对象的区别

数据&#xff0c;数据元素&#xff0c;数据项&#xff0c;数据对象的区别 1. 数据&#xff1a;客观事物的符号表示&#xff0c;是所有能输入计算机中并被计算机程序处理的符号的总称。 2. 数据元素&#xff1a;数据的基本单位&#xff0c;在计算机中通常作为一个整体进行考虑…

数据元素、数据项、组合项、数据结构

数据元素&#xff1a; 数据中的一个“个体”&#xff08;数据本身就是一个集合&#xff09; &#xff0c;是数据结构中讨论的基本单位。 注意&#xff1a; 数据元素不是数据结构中讨论的最小单位。它可以由多个数据项组成&#xff0c;是数据项的集合。 数据项&#xff1a; 数…

数据、数据元素、数据项、数据对象

《大话数据结构》——基本概念和术语 程序设计 数据结构 算法 什么是数据结构&#xff0c;首先需要知道以下的几个基本概念和术语&#xff1a; 1.数据 数据&#xff1a;是描述客观事物的符号&#xff0c;是计算机中可以操作的对象&#xff0c;是能被计算机识别&#xff0c;…

数据结构的基本组成及概念,数据项,数据元素,数据对象,逻辑结构等(基础)

程序数据结构算法 什么是数据结构&#xff1f; 数据&#xff1a;是所有能够输入到计算机中&#xff0c;且能被计算机处理的符号的集合。 结构&#xff1a;是指数据之间的关系。 数据结构&#xff1a;就是将数据及其之间的关系有效地存储在计算机中并进行基本操作。 算法&#…

数据结构基本概念和术语(数据、数据元素,数据对象,数据项)及举例描述

1、数据(Data) 是对信息的一种符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。如图象、声音等都可以通过编码而归之于数据的范畴。 2、数据元素(Data Element) 是数据的基本单位&#xff0c;在计算机程序中通常作为一个整…

数据、数据元素和数据项

一、数据 数据&#xff1a;是描述客观事物的符号&#xff0c;是计算机中可以操作的对象&#xff0c; 是能被计算机识别&#xff0c;并输入给计算机处理的符号集合。 数据就是符号&#xff0c;两个条件&#xff1a;可以输入到计算机中&#xff1b;能被计算机程序处理。 二、数据…

4019 设备树 Linux device tree 概述

一&#xff1a;主要关键字定义说明 <1>. DT :Device Tree <2>. FDT : Flattened Device Tree <3>. OF :Open Firmware <4>. DTS :device tree source <5>. DTSI:device tree source include <6>. DTB :device tree blob <7>.…

修改高通IPQ4019/4018的flash的分区

修改IPQ4019/4018的MTD分区 简介 高通的IPQ4018的SoC使用了ARM的CPU&#xff0c;并使用了高通的QSDK. 在开发中发现很难在它的架构中去修改MTD分区信息。 今天就提供一种可以修改MTD分区的方式。 MTD分区信息是如何从Uboot传到linux的&#xff0c;有几种方式&#xff1f;…

ipq4019 识别板卡型号的过程

openwrt系统启动后&#xff0c;会在/tmp/sysinfo/生成两个文件。其中保存了板卡型号的信息。如下日志。 [rootAbloomy:sysinfo]# pwd /tmp/sysinfo [rootAbloomy:sysinfo]# ls board_name model [rootAbloomy:sysinfo]# # cat board_name ap-dk01.1-c1 [rootAbloomy:sysinfo]# …

IPQ4019 QSDK 下添加RM500Q 5G 驱动 qmi拨号链接网络 配置 IPK包方法

拿到的移远的拨号软件驱动只用qmi方式&#xff0c;GobiNet 似乎没有。 一、运行环境 1.qca-networking-2019-spf-11-0_qca_oem 2.IPQ4019 3.Linux4.4.60 4.USB3.0接口 RM500Q qmi拨号上网 二、移植步骤 1.首先内核Linux4.4.60需要添加的关于RM500Q USB 的PID VID等步骤&a…