数据结构开篇(数据的概念以及数据的结构与关系)

简介: 数据结构开篇(数据的概念以及数据的结构与关系)

正文


数据概念


数据是什么呢?

       data数据 是对客观事物符号的表示

       在计算机程序中,是指所有能输入到计算机中并且能被计算机程序处理的符号的总称。



   数据元素(data element)

       是数据的基本单元,在计算机程序中通常是作为一个整体进行考虑和处理



   数据项 data item

       一个数据元素可以由若干个数据项组成,数据项是数据不可分割的单位。



   数据对象

       数据对象是性质相同的数据元素的集合,是数据的一个子集。



数据:

       1.用户数据

           用户需要存储的数据 如: 学生信息(学号 名字 成绩)

       2.元数据 (表头)

           用来管理用户数据的数据


数据结构


   数据结构不仅要保存数据 而且数据和数据之间的关系也要保存。

   根据数据元素之间的关系,通常可以分为下列4类基本结构:

1.集合

           结构中的数据元素之间,除了在同一个集合之外,并无其它关系。



2.线性结构

           数据和数据之间的关系是线性的

               线性?

                   一条直线


3.树形结构

           数据元素之间的关系是树状的(层次)


4.网状结构(图)



数据结构的形式定义:

       数据结构是一个二元组

           data_structure=(D,S)

           D:是数据元素的集合

           S:S是D上的关系 (数据元素之间的关系)的集合

           结构定义中的“关系”描述的是数据元素之间的逻辑关系,所以又称数据的逻辑结构

         

           “逻辑结构”: 数据元素在某种“逻辑” (按照成绩的升序降序 )的关系

         

           “存储结构”(物理结构):数据元素在计算机中的映像称为数据元素的物理结构,或存储结构


讨论一下:

           逻辑结构和存储结构的关系。

               (1)是不是数据第一次存进去,物理结构(存储结构)就固定了,之后对数据进行

               排序的操作,改变的是逻辑结构,物理结构不变吗?

               不对。

               逻辑结构是一个虚的,“想法”

               存储结构(物理结构)是真实存在的。

         

                   A   (1,dingchenkang,85)

                   B    (2,zhangsaiwei,84)

                   C    (3,quedi,100)

                   D    (4,zengheng,99)

                   E   (5,wangwu,60)



               逻辑关系:成绩降序

               存储结构

E D C B A
0x1000 0x1001 0x1002 0x1003 0x1004


逻辑关系:学号升序

               存储结构


A B C D E
0x1000 0x1001 0x1002 0x1003 0x1004


             

               可能根据逻辑结构,去改变数据的一个存储结构

               也有可能逻辑结构变了,存储结构不变。



               (2)在计算机中存储的按哪个结构存储?

                   数据存储肯定会有一个“存储结构”,同时

                   可能会对应多个“逻辑结构”

                   逻辑结构有很多种,存储结构一般只有一种。


               (3)存储结构就是物理存放的顺序关系么?

                   存储结构是指数据在存储器对应的关系



                   逻辑结构会影响存储结构吗?

                       可以影响 也可以不影响 由你决定

                       怎么存储的 也由你决定。




相关文章
|
2月前
|
存储 算法
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
这篇文章详细介绍了图的概念、表示方式以及深度优先遍历和广度优先遍历的算法实现。
68 1
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
|
1月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
40 5
|
1月前
|
存储 搜索推荐 算法
【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)
本文介绍了树和二叉树的基本概念及结构,重点讲解了堆这一重要的数据结构。堆是一种特殊的完全二叉树,常用于实现优先队列和高效的排序算法(如堆排序)。文章详细描述了堆的性质、存储方式及其实现方法,包括插入、删除和取堆顶数据等操作的具体实现。通过这些内容,读者可以全面了解堆的原理和应用。
86 16
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
52 1
|
3月前
|
设计模式 安全 Java
HashMap底层原理:数据结构+put()流程+2的n次方+死循环+数据覆盖问题
假如有T1、T2两个线程同时对某链表扩容,他们都标记头结点和第二个结点,此时T2阻塞,T1执行完扩容后链表结点顺序反过来,此时T2恢复运行再进行翻转就会产生环形链表,即B.next=A;采用2的指数进行扩容,是为了利用位运算,提高扩容运算的效率。JDK8中,HashMap采用尾插法,扩容时链表节点位置不会翻转,解决了扩容死循环问题,但是性能差了一点,因为要遍历链表再查到尾部。例如15(即2^4-1)的二进制为1111,31的二进制为11111,63的二进制为111111,127的二进制为1111111。
HashMap底层原理:数据结构+put()流程+2的n次方+死循环+数据覆盖问题
|
2月前
|
存储 编译器 C++
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
|
2月前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(三)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
2月前
|
存储
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(二)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
2月前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(一)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
2月前
探索顺序结构:栈的实现方式
探索顺序结构:栈的实现方式