数据结构
文章平均质量分 91
--JR
这个作者很懒,什么都没留下…
展开
-
010——二叉树(2)线索化
每一个结点可以有多个孩子,这并不利于我们判断非空指针域个数,所以我们可以考虑每个结点的父亲,因为一个结点的父亲结点有且仅有一个(根节点没有父亲),因此非空指针域为n-1,那么剩下的n+1个指针为空指针。情况2:x->rFLAG==0,x的右指针域是孩子, 就是后继下右子树中最靠左的节点就是后继。情况2:x->lflag==0,x的左指针域是孩子,x的左子树中最靠右的节点是前驱。情况1:x->rflag==1,x的右指针域是线索,x->rflag就是后继。同时这也说明,存在这n+1的指针域空间的浪费。原创 2024-10-26 16:10:43 · 462 阅读 · 0 评论 -
011——二叉搜索树 (3)二叉搜索树/二叉排序树BST
在二叉树的基础上增加一些规则:1.如果某节点的左子树不空 ,左子树上所有的节点的值都要小于该节点的值2.如果某节点的右子树不空,右子树上所有的节点的值都要大于该节点的值3.所有节点都要满足以上约束。原创 2024-11-02 14:38:47 · 876 阅读 · 0 评论 -
009——二叉树(1)
二叉树是树中最常用的一种,即度为2的树(每个结点最多有两个孩子),在二叉树中,结点的度只有0、1、2这三种可能。原创 2024-10-11 15:52:08 · 921 阅读 · 0 评论 -
008——树
根据上图,我们可以申请一个t数组,t数组中存放有数据和指向孩子的链表,在链表中存放孩子结点的下标,所以代码如下(这里需要注意,链表只是结构体数组的一个成员变量,t的本质仍是数组)树和子树之间的关系,可以类比于集合和子集,但是子树的根节点下的所有结点都包括的才叫做子树,下面图片圈出来的都是,若是ABCD组成的并不叫作子树。注意:结点间的关系是相对的,如果在没有前提的条件下,说谁是谁的xx(关系)的说法是错误的。树的度:树中所有的结点的最大值 ,如上图的树的度是3。根结点:没有前驱的结点,如上图的A。原创 2024-09-27 13:54:58 · 798 阅读 · 0 评论 -
006——队列
一种受限的线性表(线性逻辑结构),只允许在一段进行添加操作,在另一端只允许进行删除操作,中间位置不可操作,入队的一端被称为,出队的一端被称为在而我们会用两个指针分别用于标记队首和队尾,分别叫做队首指针和队尾指针。原创 2024-09-19 09:04:57 · 540 阅读 · 0 评论 -
007——递归(树的前置知识点)
说到递归,我们可以简单理解成。递,意思是递进;归,意思是回归。而函数调用的本质是。我们用下面的图解来说明函数的调用为什么是创建副本。原创 2024-09-23 16:03:17 · 1004 阅读 · 0 评论 -
005——栈
之允许在一端进行插入和删除的线性表栈的定义。原创 2024-09-11 22:57:14 · 752 阅读 · 0 评论 -
004——双向链表和循环链表
不同于单链表,双向链表不仅可以往后指向,还可以往前指向,则双向链表是在单链表的基础上,每个结点增加一个指针域,这个指针域保存上一个结点的地址。注意,在这里对数据进行处理时,我们不能使得这个线(单向的,无论是正向还是负向)断掉,比如像下面这种情况,就是。由003——单链表可知,单链表分为带头结点的不带头结点的,双向链表也是同理(上图的是带头结点的)从头结点开始遍历找到尾结点,在尾结点的后面插入新的结点(需要多维护一个pre)此时还要考虑L为空的情况,因为这个时候的②是不存在的。修改代码与单链表是相同的。原创 2024-09-10 22:39:50 · 865 阅读 · 0 评论 -
003——单链表
因为在我们的指针域中,存储的是下一个结点的地址,而不是下一个数据的地址。因为在结点中既包含数据又包含指针域,只有这样才能将一个又一个的结点串起来。要是这么说不能够理解,我们也可以换一种想法,此时我们的示例中只有一个数据,要是该链表再复杂一些,有100个数据,难道我们要定义100个指针吗?显然是不可能的,而存储下一个结点则可以有效避免这个问题。原创 2024-09-05 18:31:59 · 1054 阅读 · 0 评论 -
002线性逻辑结构——线性表
线性表:具有相同数据类型的有限个(n)数据元素的序列当n=0时是空表,n>1时,L=(a1,a2,a3,...,an)a1表头元素 an表尾元素除了a1以外,其他元素都有唯一的前驱元素除了an以外,其他元素都有唯一的后继元素。原创 2024-09-03 22:54:24 · 1511 阅读 · 0 评论 -
C++——STL——栈和队列
队列(queue)是只允许在一端进行插入操作,在另一端进行删除操作的线性表,允许插入(也称入队、进队)的一端称为队尾,允许删除(也称出队)的一端称为队头。队列的示意图队列中的元素除了具有线性关系外,还具有先进先出的特性。原创 2024-08-28 18:05:58 · 723 阅读 · 0 评论