首页 > 编程语言 >01数据结构和算法绪论

01数据结构和算法绪论

时间:2023-08-16 11:33:13浏览次数:45  
标签:关系 存储 01 绪论 元素 数据结构 数据 结构

01数据结构和算法绪论

  soooob 关注 2017.10.23 18:42* 字数 625 阅读 2评论 0喜欢 0

1. 什么是数据结构?

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。
  • 通俗来说数据结构是:
    • 程序设计 = 数据结构 + 算法
    • 再简单的来说数据结构就是关系,就是数据元素相互之间存在的一种或多种特定关系的集合。

2. 逻辑结构和物理结构

  • 传统上,我们把数据结构分为逻辑结构和物理结构。
  • 逻辑结构:是指数据对象中数据袁术之间的相互关系,也是我们今后最需要关注和讨论的问题。
  • 物理结构:是指数据的逻辑结构在计算机中的存储形式。

2.1 四大逻辑结构

  • 集合结构:集合结构中的数据元素出了同一个集合外,他们之间没有其他关系。
  • 树形结构:树形结构中的数据元素之间存在一种一堆多的层次关系。
  • 图形结构:图形结构的数据元素是多对多的关系。
  • 物理结构
  • 物理结构实际上研究的就是如何把数据元素存储到计算机的存储器中。
  • 存储器主要是正对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。

2.2 数据元素的存储结构形式有两种:顺序存储和链式存储。

  • 顺序存储结构:是把数据元素存放在地址连续的寸纯单元里,其数据间的逻辑关系和物理关系是一致的。比如:现实生活中的排队。
  • 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。比如:银行取号排队。很显然,这样的话链式存储结果的数据元素存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样子通过地址就可以找到相关数据元素的位置。指针就是链着它们关系的链。

标签:关系,存储,01,绪论,元素,数据结构,数据,结构
From: https://www.cnblogs.com/wangprince2017/p/17633603.html

相关文章

  • 数据结构口胡记录
    数据结构口胡记录114514天没写博客了(悲)BearandBadPowersof42\(tag\):线段树,势能分析原问题不好直接做,考虑转化维护信息首先可以发现42的幂次并不多,所以每次操作3到停止的次数并不多,因此可以用线段树多次打区间加标记。问题转化为看一个区间内是否存在42的倍数,因为区间......
  • 2019年12月英语六级
     卷一 家庭观念中国的家庭观念与其文化传统有关。和睦的大家庭曾非常令人羡慕。过去四代同堂并不少见。由于这个传统,许多年轻人婚后继续与父母同住。今天,这个传统正在改变。随着住房条件的改善,越来越多年轻夫妇选择与父母分开住。但他们之间的联系仍然很密切。许多老年人仍然......
  • ChatGPT 问答00017 在Disruptor中,WorkHandler使用案例
    在Disruptor中,WorkHandler通常用于实现多线程消费事件的场景。下面是一个简单的示例,展示了如何使用WorkHandler:假设我们有一个RingBuffer,用于存储事件,并且有多个工作线程需要并发地处理这些事件。我们定义一个名为Event的类作为事件对象,并创建一个EventWorkHandler来处理这些事......
  • ChatGPT 问答00018 在Disruptor中,EventHandler使用案例
    在Disruptor中,EventHandler通常用于并行处理事件的场景。下面是一个简单的示例,展示了如何使用EventHandler:假设我们有一个RingBuffer,用于存储事件,并且有多个事件处理器需要并发地处理这些事件。我们定义一个名为Event的类作为事件对象,并创建多个EventHandler来处理这些事件。首......
  • ChatGPT 问答00019 在Disruptor中,EventHandler的onEvent方法的3个参数分别代表什么
    在Disruptor中,EventHandler的onEvent方法的三个参数分别代表以下内容:event:表示当前处理的事件对象。它是从RingBuffer中获取的事件,你可以通过event对象访问和处理事件所携带的数据。sequence:表示当前事件的序号。每个事件在RingBuffer中都有一个唯一的序号,用于标识事件的......
  • ChatGPT 问答00016 disruptor中的EventHandler和WorkHandler区别
    在Disruptor中,EventHandler和WorkHandler是两个关键的接口,用于定义对事件的处理方式。EventHandler(事件处理器):EventHandler是Disruptor框架中最基本的事件处理接口。它定义了单个事件的处理逻辑,即当事件被发布到RingBuffer时应该如何处理。框架会并发地将每个事件传递给所......
  • 2011-2012学年 XML期末考试考试题
    2011-2012学年期末考试考试题一、填空题(每题3分,共27分)请将每道题的正确答案填写在题目中的横线上,其余答题 方式均无效。1、下面代码中的“学生信息”是根原素____根元素_________元素; <?xmlversion=”1.0”> <?DOCTYPE学生信息SYSTEM“stu.dtd”> <!ELEMENT学生信息(#......
  • [COCI2015-2016#7] Prokletnik
    [COCI2015-2016#7]Prokletnik有那么一点点启发性。假设右端点是最大值,思路很简单很经典,考虑扫描线+线段树,那么修改涉及到的点就是当前的后缀最小值,维护一个单调不减的单调栈,那么单调栈里面的点都要改。难道我们要遍历单调栈吗?哈哈,并不用,我们直接在单调栈上面建一棵线段树就行......
  • [数据结构]树上倍增
    树上倍增一、一点理解最近遇到几个关于树上倍增问题。本人太菜,有时候想不到用倍增,这里做个总结。树上倍增核心就是:\(f[u][j]\),含义是\(u\)向上跳\(2^j\)步到的位置,然后用\(f[u][j]=f[f[u][j-1]][j-1]\)进行转移。树上倍增常见应用就是:快速幂、线性(RMQ问题)、树(LCA问题)。那么......
  • redis数据结构跳表
    redis数据结构跳表数据结构跳表节点typedefstructzskiplistNode{//层structzskiplistLevel{//前进指针structzskiplistNode*forward;//跨度unsignedintspan;}level[];//后退指针structzskiplistNode*backward;//分值doublescore;//成员......