
数据结构
TomKKlalala
Just do IT.
展开
-
二叉树的遍历
先序遍历:采用栈结构 迭代版本伪代码: stack s;s.push(root);while(s非空){ node n = s.pop(); visit(n)访问n; if(n有右孩子) s.push(n); if(n有左孩子) s.push(n);//此处顺序不可颠倒} 递归版伪代码 if(节点为空) return; //递原创 2016-11-30 19:40:25 · 300 阅读 · 0 评论 -
图的遍历
广度优先遍历BFS: 举个例子,先找到A点访问,然后访问A的所有邻居B,C,然后访问B的所有邻居,C的所有邻居(邻居是指相联通的点),所以访问顺序是同一级的一起访问,所以可以类比树的层序遍历。 思路及实现: #include #include #include #define INFINITY 9 #define DISCOVER 1 #define UNDISCO原创 2016-11-30 19:42:37 · 385 阅读 · 0 评论 -
根据序列还原二叉树
结论: 拥有【先序|后序】+ 中序 拥有先序和后序 + 真二叉树(节点的出度为0或者2的二叉树),根据先序第二个节点和后序倒数第二个节点来将左子树和右子树序列分隔 在有先序和后序序列但是非真二叉树的时候,由于没有左子树和没有右子树的序列难以区分,所以无法还原二叉树原创 2016-11-30 19:44:10 · 578 阅读 · 0 评论