- 浏览: 245397 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (281)
- hibernate (16)
- sql工具 (2)
- eclipse (15)
- tomcat (13)
- 项目部署 (4)
- java (62)
- spring (15)
- EL (1)
- javascript (8)
- 正则表达式 (1)
- jQuery (4)
- mysql (15)
- jstl (1)
- jsp (1)
- eclipse,eclipse插件 (1)
- svn (4)
- java,resin (1)
- jdbc (1)
- jdk (2)
- android (21)
- resin (3)
- php (3)
- 其他 (2)
- 数据库 (2)
- cas单点登录 (2)
- 邮箱激活 (1)
- jad (1)
- 支付 (1)
- struts (1)
- jpa (1)
- struts2 (4)
- json (3)
- oracle (2)
- velocity (1)
- sina微博登陆 (2)
- qq账户登录 (1)
- spring security (1)
- java图片处理 (1)
- http请求 (1)
- cas springsecurity (1)
- freemarker (1)
- cas (6)
- java oauth2 (2)
- oauth2.0 (6)
- springsecurity oauth2 (1)
- sms (1)
- springmvc (2)
- spring aop (1)
- luaeclipse (1)
- cocos2d (1)
- hibernate缓存 (1)
- ibatis (1)
- linux (7)
- 技术网站 (1)
- python (2)
- hadoop (1)
- war3 (0)
- elasticsearch (2)
- jboss (1)
- spring data jpa (2)
- java json (1)
- jsonp (1)
- webservice (4)
- java多线程 (1)
- java加密解密 (1)
- spring task (1)
- java session and cookie (1)
- java nio (1)
- 缓存 (1)
- java大数据 (1)
- cygwin (1)
- 设计模式 (1)
- mybatis (2)
- jquery插件 (2)
- jvm内存溢出 (1)
- drools (1)
- cookie and session (1)
- jvm内存设置 (1)
- nginx (1)
- 微信 (1)
- extjs (1)
- redis (7)
- memcached (1)
- js闭包 (1)
- js (0)
- mongodb (3)
- dubbo (2)
- jdk版本问题 (1)
- opnfire (1)
- git (1)
- jsp视频播放 (1)
- 国际化 (1)
- 后台管理 (1)
- yum (1)
- k (1)
- 算法 (0)
- jvm优化 (1)
- java检测 (1)
- maven操作 (0)
- ios打包 (1)
- 网络通信 (1)
- node.js (1)
- maven (4)
- 消息队列 (2)
- springcloud (6)
- mq (2)
- idea (3)
- log4j (1)
- docker (4)
- editplus (1)
- springboot (1)
- Kubernetes (1)
- jenkins (1)
- websocket (1)
- thirft (1)
- strom (1)
- postman (1)
- kafka (1)
- 线程池 (1)
- JVisualVM (1)
- java反射 (1)
- shell (1)
- java8 (2)
- i18 (1)
- jvm (0)
- nio (1)
- nodejs (1)
- idea java (1)
最新评论
-
pengfeifei26:
wbzhaohl 写道这个有解决方案没有时间长了,貌似有点忘了 ...
A redirect is required to get the users approval -
wbzhaohl:
这个有解决方案没有
A redirect is required to get the users approval -
somebody:
恩。好吧。这个只有在 还没发布的 2.0 版本才有。
oauth2.0设置自动授权
package test; import java.util.ArrayDeque; import java.util.LinkedList; import java.util.List; /** * 功能:把一个数组的值存入二叉树中,然后进行3种方式的遍历 * * 参考资料0:数据结构(C语言版)严蔚敏 * * 参考资料1:http://zhidao.baidu.com/question/81938912.html * * 参考资料2:http://cslibrary.stanford.edu/110/BinaryTrees.html#java * * @author ocaicai@yeah.net @date: 2011-5-17 * */ public class BinTreeTraverse2 { private int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; private static List<Node> nodeList = null; /** * 内部类:节点 * * @author ocaicai@yeah.net @date: 2011-5-17 * */ private static class Node { Node leftChild; Node rightChild; int data; Node(int newData) { leftChild = null; rightChild = null; data = newData; } } public void createBinTree() { nodeList = new LinkedList<Node>(); // 将一个数组的值依次转换为Node节点 for (int nodeIndex = 0; nodeIndex < array.length; nodeIndex++) { Node node = new Node(array[nodeIndex]); nodeList.add(node); } // 对前lastParentIndex-1个父节点按照父节点与孩子节点的数字关系建立二叉树 for (int parentIndex = 0; parentIndex < array.length / 2 - 1; parentIndex++) { // 左孩子 nodeList.get(parentIndex).leftChild = nodeList.get(parentIndex * 2 + 1); // 右孩子 nodeList.get(parentIndex).rightChild = nodeList.get(parentIndex * 2 + 2); } // 最后一个父节点:因为最后一个父节点可能没有右孩子,所以单独拿出来处理 int lastParentIndex = array.length / 2 - 1; // 左孩子 nodeList.get(lastParentIndex).leftChild = nodeList.get(lastParentIndex * 2 + 1); // 右孩子,如果数组的长度为奇数才建立右孩子 if (array.length % 2 == 1) { nodeList.get(lastParentIndex).rightChild = nodeList.get(lastParentIndex * 2 + 2); } } /** * 先序遍历 * * 这三种不同的遍历结构都是一样的,只是先后顺序不一样而已 * * @param node * 遍历的节点 */ public static void preOrderTraverse(Node node) { if (node == null) return; System.out.print(node.data + " "); preOrderTraverse(node.leftChild); preOrderTraverse(node.rightChild); } /** * 中序遍历 * * 这三种不同的遍历结构都是一样的,只是先后顺序不一样而已 * * @param node * 遍历的节点 */ public static void inOrderTraverse(Node node) { if (node == null) return; inOrderTraverse(node.leftChild); System.out.print(node.data + " "); inOrderTraverse(node.rightChild); } /** * 后序遍历 * * 这三种不同的遍历结构都是一样的,只是先后顺序不一样而已 * * @param node * 遍历的节点 */ public static void postOrderTraverse(Node node) { if (node == null) return; postOrderTraverse(node.leftChild); postOrderTraverse(node.rightChild); System.out.print(node.data + " "); } public static void depthOrderTraversal(Node root){ if(root==null){ System.out.println("empty tree"); return; } ArrayDeque<Node> stack=new ArrayDeque<Node>(); //这种方法将元素推入此deque队列所表示的堆栈。 stack.push(root); while(stack.isEmpty()==false){ //这种方法的此deque队列所表示的堆栈弹出一个元素。 Node node=stack.pop(); System.out.print(node.data+" "); if(node.rightChild!=null){ stack.push(node.rightChild); } if(node.leftChild!=null){ stack.push(node.leftChild); } } System.out.print("\n"); } /** * 广度优先遍历 * 采用非递归实现 * 需要辅助数据结构:队列 */ public static void levelOrderTraversal(Node root){ if(root==null){ System.out.println("empty tree"); return; } ArrayDeque<Node> queue=new ArrayDeque<Node>(); queue.add(root); while(queue.isEmpty()==false){ //此方法检索并移除此deque队列的第一个元素。 Node node=queue.remove(); System.out.print(node.data+" "); if(node.leftChild!=null){ queue.add(node.leftChild); } if(node.rightChild!=null){ queue.add(node.rightChild); } } System.out.print("\n"); } public static void main(String[] args) { BinTreeTraverse2 binTree = new BinTreeTraverse2(); binTree.createBinTree(); // nodeList中第0个索引处的值即为根节点 Node root = nodeList.get(0); System.out.println("先序遍历:"); preOrderTraverse(root); System.out.println(); System.out.println("中序遍历:"); inOrderTraverse(root); System.out.println(); System.out.println("后序遍历:"); postOrderTraverse(root); System.out.println("深度遍历:"); depthOrderTraversal(root); System.out.println("广度遍历:"); levelOrderTraversal(root); } }
发表评论
-
solr使用
2015-03-08 12:31 0http://www.52menshao.com/conten ... -
java 对xml进行sax解析
2014-04-25 14:28 804import java.util.ArrayList; ... -
关于算法
2014-03-31 18:48 393http://bbs.csdn.net/topics/3907 ... -
java js 插件
2014-03-27 16:08 337http://www.malot.fr/bootstrap-d ... -
关于java模式
2014-03-13 17:04 289http://gxl-ct001.iteye.com/blog ... -
关于秒杀
2014-02-25 18:47 0http://www.blogjava.net/dongbul ... -
json格式时间转java时间
2014-01-08 16:17 1052http://surongly.iteye.com/blog/ ... -
Java时间日期格式转换
2014-01-03 18:26 474http://blog.csdn.net/Miniyaner/ ... -
JAVA调用sms
2014-01-03 16:15 445http://sms.webchinese.cn/api.sh ... -
oauth2.0 accesstoken验证无效处理类
2013-12-24 19:20 1119org.springframework.security.oa ... -
oauth2.0设置自动授权
2013-12-24 19:12 1412将 oauth_client_details 库表中autoa ... -
刷新access_token 类
2013-12-24 18:52 656刷新access_token 类 先删除掉库里保存的记录,然 ... -
oauth2.0怎么验证accesstoken是否正确或合法
2013-12-24 18:05 2173验证access_token流程 OAuth2Authent ... -
怎么样判断accesstoken是否过期
2013-12-24 18:02 1804用code去换取token的时候,会返回三个参数:现在的acc ... -
Java模拟HTTP的Get和Post请求
2013-09-17 17:03 1096/** post * 调用httpClient ... -
通过url获取图片并保存至本地
2013-09-17 15:39 1192/** * 通过url获取图片并保存至本 ... -
css 控制字数,多出用...表示
2013-09-16 18:20 1246<html> <head> ... -
com/caucho/server/http/ResinServer
2013-09-12 18:33 1158java.lang.NoClassDefFoundError: ... -
sina微博和腾讯微博OAuth2.0授权笔记实例
2013-09-04 09:56 794sina微博和腾讯微博OAuth2.0授权笔记实例 -
sina微博oauth2 获取accessToken
2013-09-02 23:25 1066public String execute() throw ...
相关推荐
以二叉链表存储二叉树,按照完全二叉树的编号顺序输入节点,创建二叉树,最后,给出三种遍历的结果
常见的遍历方法有三种:前序遍历、中序遍历和后序遍历。 1. **前序遍历**:访问顺序为“根—左—右”。 2. **中序遍历**:访问顺序为“左—根—右”。 3. **后序遍历**:访问顺序为“左—右—根”。 本例中实现了...
二叉树的建立和遍历算法 数据结构课程设计用
建立二叉树,实现二叉树的先序、中序、后序的递归遍历算法,输出遍历结果。 实现二叉树的先序、中序、后序和层次遍历的非递归算法,输出遍历结果。
大型二叉树建立与遍历系统\大型二叉树建立与遍历系统.
c语言中关于二叉树的先序遍历,链表的创建
数据结构实用教程之二叉树,其中包含了:二叉树的定义、二叉树的递归遍历、二叉树基本操作。 数据结构实用教程之二叉树,其中包含了:二叉树的定义、二叉树的递归遍历、二叉树基本操作。 数据结构实用教程之二叉树,...
二叉树的创建与遍历二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法...
大连理工大学数据结构上机 二叉树三种遍历,先序和中序建立二叉树,后序和中序建立二叉树,二叉搜索树查找,删除,插入
在主函数`main`中,首先提示用户按先序输入二叉树的节点,然后调用相应的函数进行遍历和子树交换,并打印出遍历结果,供用户查看和验证。 实验的目的在于让学习者掌握二叉树的逻辑结构和不同遍历方式,以及如何使用...
**遍历操作**:遍历是指按照某种顺序访问树中的所有节点,常见的遍历方式包括先序遍历、中序遍历和后序遍历。 - **先序遍历**:访问根节点 -> 遍历左子树 -> 遍历右子树。 - **中序遍历**:遍历左子树 -> 访问根...
1.采用二叉链表作为存储结构,创建一棵二叉树; 2.用递归及非递归算法对二叉树实现先序遍历; 3.用递归及非递归算法对二叉树实现中序遍历; 4.用递归及非递归算法对二叉树实现后序遍历。 5.用递归遍历算法中的访问...
用C++写的二叉树先序遍历、中序遍历和后序遍历非递归算法
我们首先定义了二叉树结点的结构体,然后实现了创建二叉树、先序遍历、中序遍历和后序遍历的函数。最后,我们使用switch语句来选择不同的遍历方式。 在实际应用中,二叉树的遍历有很多应用,如数据库查询、图形遍历...
二叉树的遍历主要有三种方法:前序遍历、中序遍历和后序遍历,每种遍历都有其独特的顺序。 1. 前序遍历:访问根节点 -> 遍历左子树 -> 遍历右子树 2. 中序遍历:遍历左子树 -> 访问根节点 -> 遍历右子树 3. 后序...
此外,为了提高效率,可以使用迭代而非递归实现遍历和删除等操作。 通过这个数据结构课程设计,学生将能够熟练运用二叉树的原理,解决实际问题,为未来的学习和职业生涯打下坚实基础。同时,这也是对数据结构理解的...
二叉树的创建与遍历C语言实现代码.zip二叉树的创建与遍历C语言实现代码.zip二叉树的创建与遍历C语言实现代码.zip二叉树的创建与遍历C语言实现代码.zip二叉树的创建与遍历C语言实现代码.zip二叉树的创建与遍历C语言...
C实现二叉树的建立及先中后序的遍历,控制台程序,在各版本vs上均可运行
常见的遍历方法有四种:前序遍历、中序遍历、后序遍历和层序遍历。 1. **前序遍历**:先访问根节点,然后遍历左子树,最后遍历右子树。 递归实现: ```cpp void preorderTraversal(TreeNode* root) { if (root ...