03 2023 档案
摘要:波兰表达式与逆波兰表达式 1. 何为前缀(波兰)、中缀、后缀(逆波兰)表达式 1.1 前缀表达式 前缀表达式是一种没有括号的算数表达式,其与中缀表达式不同的是,运算符写在前面,操作数写在后面。一般形式的(3+4)×5-6即为中缀表达式,该中缀表达式对应的前缀表达式(或称波兰表达式)为:-×+3456
阅读全文
摘要:栈Stack 1. 什么是栈 栈是一个先入后出的有序列表; 栈限制了元素的插入与删除只能在线性表的同一端进行(即栈顶Top),而另一端则为固定的一端(即栈底Bottom)。 2. 栈的常见应用场景 子程序调用 处理递归调用,ps:除了存地址还可以存参数和局部变量 表达式转换(中缀转后缀)与求值 二叉
阅读全文
摘要:Josephu问题与单向环形链表 1. 什么是约瑟夫问题(Josephu) Josephu问题的设定为:假设编号为1,2,...,n的n个人围坐成一圈,从编号为k(1≤k≤n)的人开始报数,当报至m时报m的这个人出列,其下一个人再次重新开始报数报m的人再次出列,重复此过程,直至所有人都出列,即产生了
阅读全文
摘要:链表LinkedList(2) 1. 双向链表相较单链表的优势 单链表只能顺着一个方向查找,而双向链表可以向前或向后查找; 单链表不能自我删除,删除节点时需要找到待删除节点的前一个节点,做temp.next = temp.next.next操作;而双向链表 可以进行自我删除。 2. 双向链表的增删改
阅读全文
摘要:单链表经典面试题 1. 求单链表中有效节点的个数 **思路:**直接遍历节点个数即可,如果带头节点则不统计头节点 方法代码: /** * 遍历求链表有效节点个数,但不统计头节点 * @param head 传入头节点 * @return 返回有效节点个数 */ public int getLengt
阅读全文
摘要:链表LinkedList 1. 链表介绍 链表是有序的列表,它是数据结构中树结构和图结构的基础。 链表是以节点的方式存储的,是链式存储。每个节点包含data域和next域,data域用于存储数据,next是指针域用于指向下一个节点。 链表在内存中不一定是连续存储的。 链表分为带头节点的链表和不带头节
阅读全文
摘要:队列Queue 1. 队列介绍 队列是一个有序列表,可以用数组或者链表来实现,用数组实现就是顺序存储,用链表实现就是链式存储。二者之间的区别是: 链式存储结构的内存地址不一定是连续的,而顺序存储结构的内存地址一定是连续的; 链式存储适用于频繁地进行插入、删除以及更新元素时的情况,而顺序存储适用于频繁
阅读全文