考研数据结构
Kzd.
Do something come out
展开
-
5.3.3 线索二叉树
原创 2023-04-22 12:04:41 · 185 阅读 · 0 评论 -
5.3.2二叉树的层次遍历
原创 2023-04-22 11:03:58 · 137 阅读 · 0 评论 -
5.3.1二叉树的遍历
原创 2023-04-22 10:52:06 · 62 阅读 · 0 评论 -
5.2.3 二叉树的链式存储
原创 2023-04-22 10:20:24 · 40 阅读 · 0 评论 -
5.2.3 二叉树的顺序存储
4.二叉树的顺序存储占用空间。2.完全二叉树的基本操作。原创 2023-04-22 10:12:48 · 47 阅读 · 0 评论 -
5.2.1 特殊的二叉树
二叉排序树容易查找结点,以60为例,只需一直遍历查找右子树,最后查找左子树。原创 2023-04-20 15:40:03 · 68 阅读 · 0 评论 -
5.1.1 树的定义
树和m叉树的区别。原创 2023-04-20 14:50:50 · 51 阅读 · 0 评论 -
4.2.1 朴素模式匹配算法
1.在第6次的位置,模式串和主串匹配不一样,则要让模式串的指向返回第一个位置,即j=1,让主串的重新指向第2个位置,即i-j+2,i-j=0(字符串从1开始数)2.如果模式串和主串匹配成功,要返回这个模式串在主串的起始位置,则i-T.length,主串的下标减去模式串的长度。原创 2023-04-20 11:27:38 · 55 阅读 · 0 评论 -
4.1.2 串的存储结构
1.顺序存储,串长的表示方法。原创 2023-04-20 11:01:23 · 80 阅读 · 0 评论 -
3.2.3 队列的链式实现
-如果Q.rear==p。原创 2023-04-19 08:56:37 · 50 阅读 · 0 评论 -
3.2.2 队列的顺序实现
-调用&x返回队头指针front指向的元素。核心是:利用取模运算%,让队尾指针循环返回。1.初始化操作,让队头队尾指针指向0。2.一次简单的入队操作。5.判断队满还是队空。原创 2023-04-18 22:32:33 · 70 阅读 · 0 评论 -
3.1.2 共享栈
原创 2023-04-15 23:16:58 · 71 阅读 · 0 评论 -
3.1.2 top初始值为0的出栈入栈
原创 2023-04-15 23:13:19 · 113 阅读 · 0 评论 -
3.1.2 出栈操作
3.然后,让栈顶指针下移,top变为8,而此时原栈顶元素K是仍存在的。1.定义可返回值&x,自身存在一片空间。2.判空,然后把栈顶指针的值赋给x。原创 2023-04-15 23:05:45 · 93 阅读 · 0 评论 -
3.1.2 进栈操作
5.重复执行,存满后返回false,此时top=9,不是10。3.将数x=a传入top指针指向的数组。1.if()先判断栈是否满,不满则执行。原创 2023-04-15 22:56:38 · 116 阅读 · 0 评论 -
3.1.2 栈的顺序存储实现
1.top,栈顶指针,指向这个栈的栈顶元素,记录的为数组的下标,一般从0开始。3.栈初始化时,top=-1,所以判断栈空,就是判断栈顶指针是否为-1。2.栈中加入元素,此时栈顶指针top指向栈顶元素e,top=4。#顺序栈是由静态数组的方式实现的。原创 2023-04-15 22:45:41 · 51 阅读 · 0 评论 -
2.3.8 顺序表和链表的比较
原创 2023-04-15 20:22:21 · 68 阅读 · 0 评论 -
2.3.7 静态链表
1.数组下标为0表示头结点,头结点后的数字(游标),表示下一个结点的数组下标。原创 2023-04-15 20:18:37 · 46 阅读 · 0 评论 -
2.3.6 循环链表
与普通双链表相比,循环双链表可以实现对表尾结点的插入。也可以实现对表尾结点的删除。原创 2023-04-14 20:37:16 · 39 阅读 · 0 评论 -
2.3.5 双链表的遍历
原创 2023-04-14 20:14:56 · 60 阅读 · 0 评论 -
2.3.5 双链表的销毁操作
1.while循环,只要头结点的后继结点不为空,就删除一次它的后继结点。2.直到只剩头结点,然后把头结点释放掉。3.然后让头指针指向NULL。原创 2023-04-14 20:13:04 · 148 阅读 · 0 评论 -
2.3.5 双链表的删除
2.q结点的后继结点的prior指针指向p。1.p的next指针指向和q一样的结点。3.free(q)释放结点q。原创 2023-04-14 20:05:12 · 63 阅读 · 0 评论 -
2.3.5 双链表的插入操作
2.把p的后继结点的前项指针prior指向结点s。1.要将s的next指针指向p的后继结点。3.把s结点的prior指针指向p结点。4.把p结点的next指针指向s。原创 2023-04-14 19:57:15 · 104 阅读 · 0 评论 -
2.3.5 双链表的初始化
3.malloc函数申请一片空间来存放头结点,并让这个指针L指向头结点。4.让前后指针的指针域都为NULL。1.声明了一个指向头结点的指针L。2.调用双链表的初始化函数。原创 2023-04-14 19:36:54 · 73 阅读 · 0 评论 -
2.3.3 单链表的求表长操作
len累加。原创 2023-04-12 21:15:49 · 78 阅读 · 0 评论 -
2.3.3 单链表的查找
-直到p.data=给定e,return p指向的结点。--return 返回p指针指向的结点。原创 2023-04-12 21:13:45 · 65 阅读 · 0 评论 -
2.3.2 单链表的删除结点操作
基本逻辑:代码理解:1.将q.data赋值给e,定义的&e表示值会返回给系统(因为后面会删除)2.将q.next指向NULL3.调用free函数把a4结点给释放掉4.时间复杂度。原创 2023-04-12 20:57:28 · 1757 阅读 · 1 评论 -
2.3.2 单链表的插入结点操作
-单链表示意图。原创 2023-04-10 22:51:22 · 645 阅读 · 0 评论 -
2.3.1单链表的定义
1.与顺序表不同的是,单链表不支持随机存取,即不能随便存放,且离散分布2.为什么单链表改变容量方便?因为,如果要在单链表中存放新结点,则只需(在图中画红圈)设置一段空间区域作为新结点3.另外需要空间来存放指针为使得每次创建新结点时,代码段少一点,可用typedef关键字把数据类型给缩短--所以数据类型,struct LNode和LNode一样。原创 2023-04-07 20:10:23 · 143 阅读 · 0 评论 -
2.2.4顺序表的按值查找
查找函数LocateElem(L,9) ,是找L表中值为9的的数组,并返回位序。原创 2023-04-05 20:13:53 · 56 阅读 · 0 评论 -
2.2.3顺序表的按位查找
一、静态分配二、动态分配原创 2023-04-05 20:03:10 · 72 阅读 · 0 评论 -
2.2.2 顺序表的删除操作
ListDelete(SqList &L,int i,int &e)删除顺序表L第i个元素。①&e,引用型变量,保证定义的ListDelete()方法中的e会带回给main函数。--int &e表示把此次删除的数据返回。原创 2023-04-05 19:27:22 · 1416 阅读 · 1 评论 -
2.2.1 顺序表的定义-动态分配
-执行代码后,内存就生成一片存储空间,共三个变量。原创 2023-04-02 18:00:23 · 591 阅读 · 0 评论 -
2.22 顺序表的插入操作
SqList定义顺序表方法,void ListInsert()实现元素的插入操作,mian()声明并初始化一个顺序表,省略插入几个数据元素的步骤,此时插入了五个元素,length=5,ListInsert()实现往第3个位置插入元素3--j=5>i,则执行for循环,j--,直到j=length=2,停止执行for循环。原创 2023-04-05 17:26:49 · 463 阅读 · 0 评论 -
2.2.1顺序表的定义-静态分配
①声明一个顺序表L后,计算机就会给该顺序表分配一个空间(10个)原创 2023-04-02 15:12:42 · 101 阅读 · 0 评论 -
2.1.2线性表的基本操作关于引用符&
因为参数的结果没有带回来,x=1024只在test函数中调用,只是原x值的复制,所以调用结束后,x的值仍然为1。结果,调用test后,x=1024,因为&x为引用类型,调用test后的x会带回main函数中执行。1.创建main函数,定义并调用了test方法后,为什么x的值仍为x=1?2.把test方法中的x,改写成引用类型,即在前面加个引用符号&问:什么时候要传入引用“&”?答:对参数的修改结果需要。原创 2023-03-31 21:52:03 · 224 阅读 · 0 评论