数据结构:图的基本概念 图是一种比线性表和树更为复杂的数据结构。在图结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。 图结构在计算机科学中有着广泛的应用。例如,在社交网络分析中,可以使用图结构来表示用户之间的关系;在路线规划中,可以使用图结构来表示道路网络和城市之间的连接关系;在人工智能领域中,图结构可以用于表示知识图谱和推荐系统等。 在离散数学中,图论是专门研究图的性质的数学分支,而在数据结构中 2024-02-04 数据结构 #数据结构
数据结构:哈夫曼树 树结构是一种应用非常广泛的结构,在一些特定的应用中,树具有一些特殊特点,利用这些特点可以解决很多工程问题。例如,我们今天要讨论的哈夫曼树,就是一种应用很广的树。 一、哈夫曼树的基本概念 哈夫曼(Huffman)树又称最优二叉树,它是一棵带权路径长度最小的二叉树。在哈夫曼树中,涉及路径、路径长度、权等概念,这些概念的具体含义如下: 路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径 2024-01-28 数据结构 #数据结构
数据结构:树和森林 在前面,我们讨论了树的基本概念以及二叉树的遍历,今天我们来看另一个知识点:树和森林。 一、树的存储结构 树的存储结构有很多种形式。其中,常用的表示方法有3种:双亲表示法、孩子表示法和孩子兄弟表示法。下面分别介绍。 1.1、双亲表示法 双亲表示法,是指结点中增设了指示其双亲结点的指针域。该方法以一组连续的存储单元存放树中结点。每个结点除了数据域data之外,还附设一个parent域用以指示其双亲结点 2024-01-21 数据结构 #数据结构
数据结构:二叉树的遍历 在前面的文章中,我们介绍了树和二叉树所涉及的基本概念,今天我们来看二叉树的一个重要操作:遍历。 在二叉树的一些应用中,常常要求在树中查找具有某种特征的结点,或者是对树中的全部结点逐一进行处理,这就需要对二叉树进行遍历。 一、遍历二叉树 遍历二叉树(traversing binary tree)是指按某条搜索路径访问树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。访问的含义很广,可以是对结 2024-01-14 数据结构 #数据结构
数据结构:树的基本概念 树结构是一类重要的非线性数据结构。直观来看,树是以分支关系定义的层次结构。 树结构在客观世界中广泛存在。比如,人类社会的族谱、各种社会组织机构等都可用树来形象表示。树在计算机领域中也得到了广泛应用。比如,在操作系统中,用树来表示文件目录的组织结构;在编译系统中,用树来表示源程序的语法结构;在数据库系统中,树结构也是信息的重要组织形式之一。 树这种非线性结构,比线性结构复杂得多,内容也比较多,所以这 2024-01-07 数据结构 #数据结构
数据结构:数组和广义表 之前讨论的线性结构,比如顺序表、链表、栈、队列和字符串,表中的元素都只能是单个数据元素,而不能是具有某种结构的数据。其实,在众多的数据结构中,还有一类线性结构其数据元素可以是具有某种结构的数据。比如,我们今天要讨论的数组和广义表,它们都可以看成是对线性表的一种扩充。 一、数组 1.1、定义 数组是由类型相同的数据元素构成的有序集合。数组中的每个元素受n(n>=1)个线性关系的约束,每个元素在 2023-12-31 数据结构 #数据结构
数据结构:字符串 在计算机系统中,非数值对象大部分是字符串数据。然而,现今所使用的计算机硬件结构是面向数值计算的需要而设计的,因此,在处理字符串数据时要比处理整数和浮点数复杂得多。想要有效地处理字符串数据,就必须对字符串这个数据结构有深入的了解。 一、串的定义 字符串(string)简称串,是由零个或多个字符组成的有限序列,一般记为: s=“a1a2...an”(n>=0)s=“a_1a_2...a_n” ( 2023-12-24 数据结构 #数据结构
数据结构:队列 和栈类似,队列也是一个特殊的线性表。队列在计算机系统中也有着广泛的应用。例如,在操作系统中,队列可以用于进程调度,确保按照先来先服务的原则进行任务分配。在网络通信中,队列可以用于缓存数据包,以平衡发送和接收之间的速度差异。在计算机算法中,队列可以用于广度优先搜索等算法的实现。 队列是一个很基础的数据结构,因此也需掌握。 一、简介 队列(Queue)是限定在表头删除、表尾插入的线性表。对于队列来说, 2023-12-17 数据结构 #数据结构
数据结构:栈 线性结构,除了最基础的线性表外,还有一类特殊的线性表。本篇文章要讨论的栈就是一个特殊的线性表,它在计算机系统中有着举足轻重的作用,比如,在函数调用的实现过程中就用到了栈这个数据结构。栈是一个非常基础的数据结构,因此也需重点掌握。 一、简介 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表。对于栈来说,插入、删除的一端(即表尾)称为栈顶(top),另一端则称为栈底(bottom)。 栈的操作 2023-12-10 数据结构 #数据结构
数据结构:线性表 一个好算法是建立在一个好的数据结构基础之上的。可以说,数据结构是算法设计的基础。根据数据元素之间逻辑关系和操作运算的不同,可以划分出多种数据结构,常用的数据结构,如下图所示: 在这些数据结构中,线性表是最基本和最常用的一种数据结构,同时也是其它数据结构的基础,尤其是链表,它会贯穿整个数据结构课程的始终。本篇文章将重点讨论线性表这个最基础的数据结构。 一、线性表 1.1、简介 线性表,是由n个具有 2023-12-02 数据结构 #数据结构