- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
经过上一章节《数据结构与算法之间有何关系?》的阐述,相信大家对数据结构多少有了点了解,今天我们将进入数据结构的正式学习中.
在计算机科学中,数据结构是一种数据管理、组织和存储的格式。它是相互之间存在一种或多种特定关系的数据元素的集合.
在计算机中一个静态数据是没有灵魂的,只有实际使用起来才有意义,而对于一个数据使用必然会面临三个问题:怎么存储,用什么承载,怎么处理。而这不正好和存储、组织、管理所对应吗。这也正是数据结构所研究关注的三要素.
。
怎么存储是指数据最终怎么存储在计算机磁盘上的,这也是我们经常说的物理结构也叫存储结构.
就如同我们收纳内务一样,可能有的人收纳的整整齐齐,按照一定顺序整理,有的人收纳的这一块那一块,感觉毫无章法。而我们也可以根据数据在内存中是否为连续地址存储分为顺序存储和非顺序存储,常见的顺序存储有顺序存储结构,非顺序存储有链式存储结构、索引存储结构和散列存储结构.
。
用什么承载是指数据从计算机磁盘上取出后,要放哪呢或者说用什么工具把它送给后续的应用使用呢。而这个承载体在我们高级语言就是一个类,一个数据对象,其根源就是我们现在说的数据结构,而此时我们关注的是这个类或这个数据对象数据是怎么组织的,是一对1、一对多、多对多亦或其他关系,而这种关系是纯粹的数据之间的关系无关数据实际存储情况就是逻辑上的一种关系,因此称为逻辑结构.
同样的逻辑结构也有顺序之分,可以分为线性结构与非线性结构。线性结构有数组、链表、栈、队列等,非线性结构有树结构、图结构等.
。
怎么处理指当数据已经从计算机磁盘上取出后,怎么加工使用,也就是数据运算,我们可以根据实际业务需求对数据进行各种加工处理,最得到我们想要的结果,这是处理就是我们常说的增删改查排序等操作.
如果说物理(存储)结构是数据结构的家,逻辑结构就是数据结构的骨架,那么数据运算就是数据结构的灵魂,使得数据可以真正产生价值.
数据是信息的载体,是所有可以录入到计算机中并且可以被识别处理的数字、字符、符合等合集。包括但不限于整数、小数、字母、符号、图片、音频、视频等.
数据项是数据的最小单位,比如我们在设计学生实体的时候定义学号、姓名、年龄等都是数据项.
我们实际使用中经常会把多个数据项组合在一起,作为一个整体进行统一处理,这样的组合就形成了数据的基本单位数据元素.
比如学生表中每一行数据就是一个数据元素.
数据对象是指有特定属性和操作的数据的集合。数据对象由多个数据元素组成,数据元素是数据对象的实例.
抽象数据类型是一个定义,它是抽象了数据的特性及行为并做了相关定义,但是没有具体实现.
比如说栈作为一个抽象数据类型,定义如“入栈、出栈”等操作,但是具体底层是使用数组实现还是链表实现,使用者并不关心.
后面我们继续将对:数组、链表、跳表、栈、队列、树、堆、散列、图九类数据结构进行深入学习,感兴趣的可以持续关注.
注:测试方法代码以及示例源码都已经上传至代码库,有兴趣的可以看看。https://gitee.com/hugogoos/Planner 。
最后此篇关于数据结构-概述及其术语的文章就讲到这里了,如果你想了解更多关于数据结构-概述及其术语的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我目前正在尝试基于哈希表构建字典。逻辑是:有一个名为 HashTable 的结构,其中包含以下内容: HashFunc HashFunc; PrintFunc PrintEntry; CompareF
如果我有一个指向结构/对象的指针,并且该结构/对象包含另外两个指向其他对象的指针,并且我想删除“包含这两个指针的对象而不破坏它所持有的指针”——我该怎么做这样做吗? 指向对象 A 的指针(包含指向对象
像这样的代码 package main import "fmt" type Hello struct { ID int Raw string } type World []*Hell
我有一个采用以下格式的 CSV: Module, Topic, Sub-topic 它需要能够导入到具有以下格式的 MySQL 数据库中: CREATE TABLE `modules` ( `id
通常我使用类似的东西 copy((uint8_t*)&POD, (uint8_t*)(&POD + 1 ), back_inserter(rawData)); copy((uint8_t*)&PODV
错误 : 联合只能在具有兼容列类型的表上执行。 结构(层:字符串,skyward_number:字符串,skyward_points:字符串)<> 结构(skyward_number:字符串,层:字符
我有一个指向结构的指针数组,我正在尝试使用它们进行 while 循环。我对如何准确初始化它并不完全有信心,但我一直这样做: Entry *newEntry = malloc(sizeof(Entry)
我正在学习 C,我的问题可能很愚蠢,但我很困惑。在这样的函数中: int afunction(somevariables) { if (someconditions)
我现在正在做一项编程作业,我并没有真正完全掌握链接,因为我们还没有涉及它。但是我觉得我需要它来做我想做的事情,因为数组还不够 我创建了一个结构,如下 struct node { float coef;
给定以下代码片段: #include #include #define MAX_SIZE 15 typedef struct{ int touchdowns; int intercepti
struct contact list[3]; int checknullarray() { for(int x=0;x<10;x++) { if(strlen(con
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Empty “for” loop in Facebook ajax what does AJAX call
我刚刚在反射器中浏览了一个文件,并在结构构造函数中看到了这个: this = new Binder.SyntaxNodeOrToken(); 我以前从未见过该术语。有人能解释一下这个赋值在 C# 中的
我经常使用字符串常量,例如: DICT_KEY1 = 'DICT_KEY1' DICT_KEY2 = 'DICT_KEY2' ... 很多时候我不介意实际的文字是什么,只要它们是独一无二的并且对人类读
我是 C 的新手,我不明白为什么下面的代码不起作用: typedef struct{ uint8_t a; uint8_t* b; } test_struct; test_struct
您能否制作一个行为类似于内置类之一的结构,您可以在其中直接分配值而无需调用属性? 前任: RoundedDouble count; count = 5; 而不是使用 RoundedDouble cou
这是我的代码: #include typedef struct { const char *description; float value; int age; } swag
在创建嵌套列表时,我认为 R 具有对列表元素有用的命名结构。我有一个列表列表,并希望应用包含在任何列表中的每个向量的函数。 lapply这样做但随后剥离了列表的命名结构。我该怎么办 lapply嵌套列
我正在做一个用于学习目的的个人组织者,我从来没有使用过 XML,所以我不确定我的解决方案是否是最好的。这是我附带的 XML 文件的基本结构:
我是新来的 nosql概念,所以当我开始学习时 PouchDB ,我找到了这个转换表。我的困惑是,如何PouchDB如果可以说我有多个表,是否意味着我需要创建多个数据库?因为根据我在 pouchdb
我是一名优秀的程序员,十分优秀!