查找-数据结构

查找-数据结构 基本概念 查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找 查找表(查找结构):用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成 关键字:数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该是唯一的 比如: 学号 姓名 语文 数学 英语 202001 小菜 99 98 97 202002 小莫 87 87 87 202003 小果

图-数据结构

图-数据结构 基本概念: 图的定义 图G(Graph)由顶点集V(Vertex)和边集E(Edge)组成,记为G=(V,E),其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。若V={v~1~,v~2~,...,v~n~},则用|V|表示图G中顶点的个数,也称图G的阶,E={(u,v)| u∈V,v∈V},用|E|表示图G中边的条数。 注意:线性表可以是空表,树可

二叉树具体实现-C语言

二叉树具体实现-C语言 知识回顾: 树 树是n(n>=0)个结点的有限集。当n=0时,称为空树。在任意一棵非空树中应满足: 1、有且仅有一个特定的称为根的结点。 2、当n>1时,其余结点可分为m(m>0)个互不相交的有限集T~1~,T~2~,...,T~n~。其中每个集合本身又是一棵树,并且称为根的子树。 树作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点: 1、树的根结

二叉树的遍历和线索二叉树-数据结构

二叉树的遍历和线索二叉树-数据结构 二叉树先、中、后序遍历 遍历:按照某种次序把所有结点都访问一遍 层次遍历:基于树的层次特性确定的次序规则 先/中/后序遍历:基于树的递归特性确定的次序规则 二叉树的递归特性:要么是空二叉树,要么就是由根节点+左子树+右子树组成的二叉树 先序遍历先访问根节点,然后递归地对左子树和右子树进行先序遍历。 中序遍历先递归地对左子树进行中序遍历,然后访问根节点,最后递归地

树和二叉树的基本概念-数据结构

树和二叉树的基本概念-数据结构 树的基本概念 树(Tree)是一种非常常见的数据结构,它是由节点(Node)组成的集合,这些节点之间通过边(Edge)相连。树的每个节点有一个称为父节点的节点,除了根节点(Root Node)外,每个节点都有一个或多个称为子节点的节点。根节点是树的顶部节点,它没有父节点。而叶子节点(Leaf Node)是没有子节点的节点。 空树:结点数为0的树 非空树的特性: 1、

串-数据结构

串-数据结构 串的定义 串,即字符串(String)是由零个或者多个字符组成的有限序列。一般计为S='a~1~a~2~......a~n~'(n>=0)。其中S是串名,单引号括起来的字符序列是串的值;a~i~可以是字母、数字或者其他字符;串中字符的个数n称为串的长度。n=0时的串称为空串(可以用数学符号∅表示)。 子串:串中任意个连续的字符组成的子序列。 主串:包含子串的串。 字符在主串中的

栈与队列-C语言

栈与队列-C语言 初始化栈-入栈-出栈 通过代码依次实现初始化栈,判断栈是否为空,压栈,获取栈顶元素,弹栈。此处规定S.top=-1时,栈为空。 #include <stdio.h> #include <stdlib.h> #define MaxSize 50 typedef int ElemType; typedef struct { ElemType data

队列-数据结构

队列-数据结构 队列的基本概念 队列:是只允许在一端进行插入,在另一端删除的线性表。 队头:允许删除的一端 队尾:允许插入的一端 空队列:队列内不包含元素 队列的特点:先进先出 队列的基本操作 InitQueue(&Q):初始化队列,构造一个空队列Q。 DestroyQueue(&Q):销毁队列。销毁并释放队列Q所占用的内存空间。 EnQueue(&Q,x):入队,若队列Q

栈-数据结构

栈-数据结构 栈的定义 只允许在一端进行插入或删除操作的线性表。 逻辑结构:与普通的线性表相同 数据的运算:插入、删除操作有区别 栈的概念 栈顶:允许插入和删除的一端 栈底:不允许插入和删除的一端 空栈:不包含数据元素 栈的基本操作 InitStack(&S):初始化栈。构建一个空栈S,分配内存空间。 DestoryStack(&S):销毁栈。销毁并释放栈S所占用的内存空间。 Pu

静态链表-数据结构

静态链表 静态链表、单链表和双链表都是链式存储结构,但它们在内存分配方式、节点结构和操作方式上有所不同。 静态链表(Static Linked List): 静态链表使用数组来实现链式结构,而不是通过指针。数组中的每个元素对应于链表中的一个节点。 静态链表在静态内存中分配节点,节点的数量在编译时确定,无法动态调整。 静态链表的插入和删除操作比较麻烦,因为需要手动维护空闲节点的链表。 单链表(Sin