数据结构
2401w
不要让你的脑袋成为别人思想的跑马场
展开
-
java - 中缀表达式转后缀表达式
思路分析: 1、初始化两个栈:运算符栈s1、储存中间结果的栈s2 2、从左至右扫描中缀表达式 3、遇到操作数时,将其压入s2 4、遇到运算符时,比较其与s1栈顶运算符的优先级 1)如果s1为空,或栈顶运算符为左括号"(",则直接将运算符入栈 2)如果s1不为空 a、若优先级比栈顶优先级高,也将运算符入栈 b、否则,将s1栈顶的运算符弹出并压入到s2中,再次转到4、1与s1中新的栈顶运算符相比较 5、遇到括号时: 1)如果是左括号"(",直接压入s1原创 2021-09-26 14:20:24 · 275 阅读 · 0 评论 -
java单向环形链表解决约瑟夫问题
Josephu(约瑟夫)问题: 设编号为1、2、3……n的n个人围坐一圈,约定编号为k(1≤k≤n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列 通过单向环形链表实现约瑟夫问题,将问题分为两部分 1、创建并显示单向环形链表(实现n个人围坐一圈) 2、出列(实现报数出列) 一、创建并显示单向环形链表 // 创建first节点 private Boy first = null; // 添加节点,构建环形链表 /原创 2021-09-19 08:58:54 · 71 阅读 · 0 评论