- 博客(19)
- 收藏
- 关注
原创 第三讲 栈、队列和数组 (1)
利用栈底位置相对不变的特性,可以让两个顺序栈共享一个一维数组空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延伸,如图所示,如果栈顶指针指向当前元素的话,仅当两个栈顶指针相邻时,判断为栈满。栈的上溢就是缓冲区满还往里写,栈的下溢就是缓冲区空还往外读,为了解决上溢,可以给栈分配很大的空间,而这样又会造成空间的浪费,共享栈的提出就是在解决上溢的基础上节省存储空间,将两个栈放在同一段更大的空间内。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,
2024-05-24 19:50:20 583 1
原创 第二章 线性表(5)
这时我们可以分别在两条链表的第一个结点处设置一个指针,然后其中一条链表的指针走到结束时回到另一条链表的第一个结点处继续往后走,由于两个指针走过的距离一样长,因此如果两条链表相交的话,那么一定会相遇;解题思路:本题和上面那题思路差不多,设置两个指针比较大小,只不过上面那题可以采用尾插法,而本题必须采用头插法,将比较得出的较小结点插入新链表,(因为如果采用尾插的话比较当前结点得出的较大结点不是所有节点中的最大结点,因此不可行),在跳出循环后不能直接将剩余链表接在其后面,依然需要一个一个用头插法插回新链表。
2024-05-23 19:29:37 926 1
原创 第二章 线性表(4)
第五步:快指针每次都追赶慢指针1个单位,设慢指针速度1/s,快指针2/s,那么追赶需要(n-x)s 第六步:在n-x秒内,慢指针走了n-x单位,因为x>=0,则慢指针走的路程小于等于n,即走不完一圈就和快指针相遇。:考虑最坏的情况,慢指针进入环时,快指针刚好在它前面一位,因为二者的相对速度差为1,因此快指针需要走(环长-1)次二者相遇,其他情况快指针需要走的次数都比这种情况需要走的少,即慢指针走的次数也一定比(环长-1)少,因此慢指针移动距离一定小于环长.k 是一个正整数,它的值小于或等于链表的长度。
2024-05-21 20:27:24 1339 1
原创 第二章 线性表(3)
给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。3.快慢指针:双指针的进化版,快指针每次走两步,慢指针每次走一步,可用于找链表中间节点,找环等。删除结点只要找到待删除结点的直接前驱结点,然后用删除结点的基本操作将待删除结点删除即可;5.链表节点的删除和连接:牢记口诀,先连后,再连前,(如有删除)最后释放删除节点。暴力方法,先遍历一遍链表记录链表长度,再遍历一次找到其前驱结点,执行删除操作;
2024-05-20 14:41:45 850
原创 第二章 线性表(2)
单链表结点的数据结构描述int data;//数据域//代表指针域,指向直接后继元素;//结构体别名单链表是由表头指针唯一确定,因此单链表可以用头指针的名字来命名。若头指针名是L,则简称该链表为表L。单链表的初始化//有头结点的单链表的初始化//创建头结点;//初始化为空链表//无头结点的单链表的初始化//直接指向NULL,初始为空链表带有头结点的单链表不带头结点的单链表由于带有头结点的链表更容易操作,因此如果题目中给的链表无头结点,可以自己申请一个dummy。
2024-05-18 12:53:41 544
原创 第二章 线性表(1)
单链表结点的数据结构描述int data;//数据域//代表指针域,指向直接后继元素;//结构体别名单链表是由表头指针唯一确定,因此单链表可以用头指针的名字来命名。若头指针名是L,则简称该链表为表L。单链表的初始化//有头结点的单链表的初始化//创建头结点;//初始化为空链表//无头结点的单链表的初始化//直接指向NULL,初始为空链表带有头结点的单链表不带头结点的单链表由于带有头结点的链表更容易操作,因此如果题目中给的链表无头结点,可以自己申请一个dummy。
2024-05-16 14:13:52 357 1
原创 二叉树寻找从m到n的路径
遍历的访问顺序描述了一种左子树,根,右子树三者之间的关系. 这里提到了子树,我们在讨论树的问题的时候,最好的方式就是,永远不要把树上的节点割裂出来孤立的分析,而是把它们放在子树中,考察子树共同的性质。我们都知道,某个节点想要访问,必先入栈,若想入栈,那么它的每一个祖先节点都必须已经入栈过。在右子树,由于是后序遍历,可以肯定左子树已经全部访问完并且出栈了,而且祖先还在栈中,右子树访问到。递归到整个树结构,后序遍历可以保证,访问到某节点时,栈中存储的永远是它的全部祖先节点。的时候,栈中还是全部都是祖先节点。
2024-05-15 21:32:59 1468
原创 异常和中断(2)
对于这种用软件进行中断识别的方式,其中断接口的硬件结构很窗单,只要一根中断请求线和一个中断请求寄存器,而且,可通过改变软件中的查询顺序来改变中断响应优先级,因而比较灵活。程序的过程中,若A、B、C、D4个中断源同时提出请求,按照中断级别的高低,CPU首先响应并处理A中断源的请求,由于A的屏蔽字是1111,屏蔽了所有的中断源,**这是中断请求的目的,对于不同的中断请求源,其中断服务操作的内容是不同的,例如在程序I/O中,就是输入/输出数据。中断源是请求CPU中断的设备或事件,一台计算机允许有多个中断源。
2024-05-15 09:03:06 461
原创 第二章 数据的表示与运算(1)
【考频分析】48IEEE75415IEEE75410IEEE75414IEEEALUIEEE75423IEEE754107IEEE754ALU17IEEE754ALU11IEEE7547IEEE7546。
2024-05-06 09:15:55 1193 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人