摘要:
首先介绍下,优先队列的信息。里面有一个数组,0位置不存元素。1位置开始存,第i个元素,左孩子是2i,右孩子是2i+1,父节点是i/2。还有就是根据优先队列的插入算法,所以都是先有左孩子,再有右孩子的。代码来自数据... 阅读全文
摘要:
代码摘抄自数据结构与算法分析(Java语言)的课后题的答案,但是自己把程序理解了一遍。答案不仅有错,而且错还挺多,基本测试好了,应该没有错误了,但是不排除你们把代码拿去实验又发现有错误,如若发现请回复我下(..•... 阅读全文
摘要:
代码摘抄自数据结构与算法分析(java语言)的课后题的答案,但是自己把程序理解了一遍,其实答案也有错误,比如原答案无法删除叶子节点,因为写答案的人没有去实现这个功能。注释已经把程序解释得很清楚了。下面放代码,先是... 阅读全文
摘要:
首先介绍下非循环队列的实现形式,不管用链表还是数组实现,总会有两个变量记录队头和队尾的位置当头尾都指向了索引0位置时,则代表队列中没有元素。当进行第一次入队操作后,头指向第一个位置。而尾指向最后一个元素的下一个位... 阅读全文
摘要:
首先声明中缀表达式的要求,运算符只有+-*/^和()这7种,其余只能是用来代表数字的小写字母,最后是=。程序运行过程是,循环读取每个字符。如果是操作数,那么就直接打印;如果是操作符,则推入一个栈中同时进行判断。判... 阅读全文
摘要:
计算一个后缀表达式的值,首先想到就是可以利用栈来实现。当见到一个数时,就把数推入到栈中去。当见到一个运算符时,就把栈顶的两个元素即数字弹出并删除,计算出结果后,再结果这个数推入到栈中。注意就是,先弹出的数(即代码... 阅读全文
摘要:
约瑟夫环问题描述: 编号为1,2,3...n的人一词围成一圈,从第k个人开始报数(从1开始),数到m的人退出。接着下一个人又从1开始报数,数到m的人退出,以此类推。问:剩下的人的编号是多少?为了更加清晰理解题意... 阅读全文
摘要:
问题描述:给定一个整数序列,a0, a1, a2, …… , an(项可以为负数),求其中最大的子序列和。如果所有整数都是负数,那么最大子序列和为0;方法一:用了三层循环,因为要找到这个子序列,肯定是需要起点和终... 阅读全文
摘要:
问题:编写一个递归方法,返回数N的二进制表示中1的个数解决:利用这样一个事实:如果N是奇数,那么它等于N/2的二进制表示中1的个数加1。 通过自己笔算还能发现,如果N是偶数,那么它的个数等于,... 阅读全文
摘要:
这是疯狂java讲义的一道题。在网上能搜到各种正确答案,有各种不同版本。在此我整理了一下,然后把其中的道理归纳总结一下。下面列出了各个版本:1.有四个类,一个打印类,两个线程类,和一个测试类。打印类里面用的同步方... 阅读全文