首页 > 其他分享 >数据结构·简述

数据结构·简述

时间:2024-06-04 16:26:43浏览次数:29  
标签:存储 元素 简述 相邻 算法 数据结构 结构

数据结构绪论

一、数据结构:相互存在一种或多种特定关系的集合

  • 结构:任何问题,数据元素不孤立存在,之间存在关系
  • 逻辑结构
  • 存储结构(物理结构)
  • 数据的运算
  • 逻辑结构和存储结构密不可分
  • 算法设计取决于逻辑结构,实现依赖存储结构

二、逻辑结构:数据元素之间的逻辑关系

  • 与存储无关,独立于计算机
  • 分为线性结构和非线性结构
    线性结构:线性表、栈、队列、串、数组、广义表
    非线性结构:树、二叉树、有向图、无向图

三、存储结构(物理结构):数据结构在计算机中的映像

  • 数据结构的表示
  • 关系的表示
  • 依赖于计算机语言
  • 分为顺序存储、链式存储、索引存储、散列存储

1. 顺序存储:存储的物理位置相邻,逻辑上相邻的元素物理位置也相邻

  • 优:实现随机存取、每个元素占用的内存少
  • 缺:只能使用相邻的一块存储单元,产生较多的外部碎片

2.链式存储:存储的物理位置未必相邻,逻辑上的相邻的元素在物理位置上未必相邻,通过记录相邻元素的物理位置来找到相邻元素

  • 优:无碎片产生、充分利用存储单元
  • 缺:只能顺序存储

3. 索引存储:类似目录

4. 散列存储:通过关键字直接计算出元素的物理地址

四、数据运算

五、算法的五个特征

  • 有穷性:执行有限步后结束
  • 确定性:每条指令都有确定的含义,相同输入得到相同的输出
  • 可行性:通过实现的基本运算执行有限次得到确定的结果
  • 输入:有零或多个输入
  • 输出:一个或多个程序输出结果

六、算法的复杂度

1. 时间复杂度:衡量算法随问题规模增大,算法执行时间增加的快慢

2. 空间复杂度:衡量算法随问题规模增大,算法占用空间增加的快慢

标签:存储,元素,简述,相邻,算法,数据结构,结构
From: https://www.cnblogs.com/blueflylabor/p/18231130

相关文章

  • 数据结构·基本概念
    DataStructureNotesAuthor:"blueflylabor"Version:1.0RefreshDate2020.11.26Description:JustrecordandreviewsomepointsaboutDataStructure.Havemistakesthatpleasecorrectityourself.数据结构的基本概念1.数据2.数据元素:数据的基本单位,一个......
  • 数据结构·查找算法
    查找1.顺序查找一般表(1)代码typedefstruct{ElemType*elem;inttableLen;}SSTable;intsearchSeq(SSTableST,ElemTypekey){ST.elem[e]=key;//设置哨兵for(inti=0;i<ST.tableLen;i++)returni;//存在返回,不存在返回1}(2)设......
  • 数据结构·查找算法
    查找1.顺序查找一般表(1)代码typedefstruct{ElemType*elem;inttableLen;}SSTable;intsearchSeq(SSTableST,ElemTypekey){ST.elem[e]=key;//设置哨兵for(inti=0;i<ST.tableLen;i++)returni;//存在返回,不存在返回1}(2)设......
  • 数据结构第四篇【再谈泛型】
    数据结构第四篇【再谈泛型】泛型泛型类的使用泛型的上界泛型方法通配符通配符上界通配符下界......
  • 【第二节】C/C++数据结构之线性表
    目录一、线性表基本说明1.1基本概念1.2抽象数据类型1.3存储结构1.4插入与删除的区别1.5顺序存储和链式存储的优缺点二、链表2.1基本概念2.2抽象数据类型2.3单链表的定义2.4单链表的基本操作2.5单链表模板形式的类定义与实现三、单向循环链表四、双链表......
  • Java数据结构-delayQueue-优先队列--信号量
    原编辑链接:https://www.yuque.com/zhaozhaozhaozhao-khkij/lp7g2t/blwysxg3ygb00dw6?singleDoc#《3delayqueue》Queue问题单端队列和双端队列,分别对应的实现类是哪个?○Java中的单项队列queue是用链表实现的,Queue本身是一个接口,继承了Collection集合;○双端队列(De......
  • 数据结构单链表的前插法实现
    单链表的前插法实现可以通过以下步骤进行:创建一个新的节点,并将要插入的元素存储在新节点的数据域中。将新节点的指针域指向原链表的头节点。将原链表的头节点指向新节点。具体代码实现如下所示:classNode:def__init__(self,data):self.data=data......
  • 数据结构学习笔记-希尔排序
    希尔排序的算法设计与分析问题描述:设计并分析希尔排序算法【算法设计思想】选择一个初始的增量序列,通常选择数组长度的一半(n/2)作为初始增量。对于每个增量,将数组分割成若干个子序列,每个子序列的长度等于当前增量。例如,如果增量为5,那么数组将被分割成长度为5的子序列。对......
  • 【Java数据结构】详解Stack与Queue(一)
    ......
  • C语言简述
    初识C语言目录初识C语言前言一、C语言是什么?二、第一个C语言程序1.打开vs2022编译器2.创建源文件3.写代码4.main函数5.printf库函数总结前言其实我也不知道该写什么,这个是我第一篇博客,我就讲述一下我自己在课程中所理解到的知识点给大家分享一下。一、C语言是什......