![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
以Java语言为主
chs_502
无基础、无经验、无能力的计算机初学者
展开
-
位运算
目录 1.如何用移位操作实现乘法运算 2.如何判断一个数是否为2的n次方 3.如何求二进制中1的个数 1.如何用移位操作实现乘法运算 把一个数向左移动 n 位相当于把该数乘以 2 的 n 次方,因此当乘法运算中的某个数字满足这个特点,可用移位操作代替乘法运算,提高效率。 public class Muti { public static int powerN(int m,in...原创 2020-03-25 15:00:34 · 159 阅读 · 0 评论 -
栈与队列
目录 1.如何实现栈 2.如何用O(1)时间复杂度求栈中最小元素 3.如何实现队列 4.如何实现用两个栈模拟队列操作 1.如何实现栈 可以采用数组与链表这两种方法来实现栈。 给出链表的方法实现栈: class Node<E> { Node<E> next=null; E data; public Node(){} publi...原创 2020-03-24 18:57:26 · 82 阅读 · 0 评论 -
链表(二)
目录 1.如何从尾到头输出单链表 2.如何寻找单链表的中间节点 3.如何检测一个链表是否有环 4.如何在不知道头指针的情况下删除指定节点 5.如何判断两个链表是否相交 1.如何从尾到头输出单链表 看到这个问题,最直接地想法就是先反转链表,再输出,在上一篇博客有实现这个方法,但需要额外的操作。 还有一种方法,就是利用栈。每经过一个节点,把该节点压入栈,遍历完链表后,从栈顶开始输出节点...原创 2020-03-24 16:23:18 · 110 阅读 · 0 评论 -
链表(一)
1.如何实现单链表的增删操作 链表是一种递归的数据结构,它或者为空(null),或者指向一个节点的引用,该节点含有一个泛型的元素和一个指向另一条链表的引用。 以下给出链表的基本操作: public class Node { int data; Node next = null; public Node(int data){ this.data=dat...原创 2020-03-24 12:53:10 · 142 阅读 · 0 评论