首页 > 其他分享 >数据结构

数据结构

时间:2023-08-07 15:34:40浏览次数:21  
标签:存储 元素 结点 之间 数据结构 数据 结构

1.基本概念与术语

数据、数据元素、数据项三者之间的关系

数据>数据元素>数据项。

数据元素——组成数据的基本单位,是数据的个体。

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


逻辑结构与存储结构的关系

存储结构是逻辑关系的映像与元素本身的映像。

逻辑结构是数据结构的抽象,存储结构是数据结构的实现。

两者综合建立了数据元素之间的结构关系。


逻辑结构的种类

方法一:

1.线性结构:有且只有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。

比如:线性表、栈、队列、串。


2.非线性结构:一个结点可能有多个直接前趋和直接后继。

比如:树、图。


方法二:四类基本逻辑结构

1.集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何关系。

2.线性结构:结构中的数据元素之间存在一对一的线性关系。

3.树形结构:结构中的数据元素之间存在一对多的层次关系。

4.图状结构(网状结构):结构中的数据元素之间存在多对多的任意关系。


存储结构的种类

1.顺序存储结构   2.链式存储结构   3.索引存储结构  4.散列存储结构

顺序存储结构:

用一组连续存储单元一次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。


链式存储结构:

用任意一组的存储单元存储数据元素,数据元素之间的逻辑关系用指针表示。














标签:存储,元素,结点,之间,数据结构,数据,结构
From: https://blog.51cto.com/u_15839001/6994213

相关文章

  • 王道408---区分数据结构和逻辑结构
    如下:https://www.zhihu.com/question/401303485 链表只能用指针实现,故为存储结构栈可以用链式也可以用数组实现,故为逻辑结构 ......
  • 王道408--数据结构--用数组实现二叉树--并查集及其优化代码
    一、数组实现二叉树(下标从0开始)#include<stdio.h>typedefstruct_TreeNode{intdata;boolIsEmpty;//结点是否为空//因为我们的二叉树不一定是满二叉树,中间可能有一些节点不存在//值为1代表空}TreeNode;//初始化voidInitTreeNode(TreeNodet[......
  • 数据结构与算法(四):双向链表
    基本概念双向链表概念和单向链表是一致的,区别在于双向链表在单向链表的基础上,指针区域多了一个指向上一个节点的指针。单向链表内容可以参考我的上一篇文章:http://t.csdn.cn/Iu56H。基本的数据结构如图所示:链表结构双向链表结构包含了节点的数据内容和两个指针:指向前一个节点......
  • 【JAVA】探索泛型与数据结构:解锁高效编程
    引言在当今信息爆炸的时代,数据结构和算法成为了程序员必备的核心技能。而泛型作为Java语言中的一项强大特性,为数据结构和算法的实现提供了更高效、更安全的方式。本文将深入探讨泛型的概念、使用场景以及结合数据结构的应用,为您打开高效编程之道。第一部分:了解泛型1.1为什么使......
  • 数据结构:堆 heap
    堆分为小顶堆和大顶堆,其本质是一颗完全二叉树,不同点在于:除叶子节点外,小顶堆的每个父节点的key都要比其左右两个子节点的key小;大顶堆的每个父节点的key都要比其左右两个子节点的key大。其中,key是节点的取值,index为节点在树中的索引或者位置。小顶堆/大顶堆的特点在于,其根节点一定......
  • C/C++ 数据结构-直接选择排序
    #include<iostream>#include<Windows.h>usingnamespacestd;voidswap(int*num1,int*num2){inttemp=*num1;*num1=*num2;*num2=temp;}intmain(){intret[]={161,156,170,164,158,180,159,185,172,176};intlen=......
  • 数据结构(一)数据结构与算法
    目录算法时间复杂度T(n)=O(f(n))空间复杂度S(n)=O(f(n))算法算法是一系列程序指令,用于处理特定的运算和逻辑问题。例:1+2+3...+100inti,sum=0,n=100;for(i=1;i<=n;i++){ sum=sum+i;}printf("%d",sum);等差数列:Sn=(a1+an)*n/2=n*a1+n*(n-1)*d......
  • 【笔记】数据结构专题
    恐怖一大堆Ynoi,一大堆不会的以后再来吧https://vjudge.csgrandeur.cn/article/39088.5数据结构扫描线P5490【模板】扫描线对坐标离散化。维护\(a,b\),\(a\)是相邻两个矩形高度差,\(b_i\)初始全零,操作是\(b[l,r]+=v\),询问\(\sum_{i}a[b_i\geq1]\)。维护\(\min,\sum......
  • 【数据结构】散列表
    这种查找结构与线性表和树形结构都不同,前两者的共同特点是关键字与记录位置之间没有确定关系,需要从一个起点不断进行比较查找位置。可以知道散列表(哈希表)是一种完全不同机制的查找结构,不采用基于比较选择的查找机制,而是直接在关键字与位置之间建立映射。所以在讨论它时也和上面......
  • C/C++ 数据结构五大核心算法之贪心算法_钱币找零问题
    贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。贪婪算法所得到的结果往往不是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。贪婪算法并没有固定的算法解决框架,......