![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构基础算法
夜间传说
努力学习,天天向上!
展开
-
c++建立二叉树,后序遍历非递归输出
后序遍历需要借助一个pre指针来判定之前走过的路径。 后序遍历过程中节点可以访问的标志是,当前节点没有孩子,或者当前节点的前一个节点是左右孩子中的一个。 #include<iostream> #include<stack> using namespace std; struct Node{ char data; Node *lchild; Node *rchild; }; Node*createTree(){ char x; cin>>x; if(x=='#'原创 2021-01-17 10:47:12 · 337 阅读 · 0 评论 -
c++求带父亲节点的两个节点的最近祖先
c++求带父亲节点的两个节点的最近祖先 思路是先找到这两个叶子节点的在二叉树的位置,然后沿着祖先用一个栈保存从叶子节点到根节点的路径。比较两个叶子节点的路径节点,找出最后一次相等的节点,这个节点就是他们的公共祖先。 #include<iostream> #include<stack> using namespace std; //求两个叶子节点的最近共同祖先,默认节点的值都不同,有指向父亲的节点。 /* 测试用例:1 2 4 # # 5 # # 3 # # */ struct N原创 2021-01-16 20:34:54 · 188 阅读 · 0 评论 -
c++递归建立树,递归求树的节点数
递归建立树,递归求树的节点数 递归式子是左子树节点数+右子树节点数+1 #include<iostream> #include<stack> using namespace std; int count=0; struct Node{ char data; Node *lchild; Node *rchild; }; Node*createTree(){ char x; cin>>x; if(x=='#')return NULL; Node *root=ne原创 2021-01-16 17:28:00 · 513 阅读 · 0 评论 -
c++先序遍历创建树和输出树。
用递归的方法建立,先左后右。依次创建左右子树。 #include<iostream> #include<stack> using namespace std; struct Node{ char data; Node *lchild; Node *rchild; }; Node*createTree(){ char x; cin>>x; if(x=='#')return NULL; Node *root=new Node; root->data=x;原创 2021-01-16 17:18:26 · 614 阅读 · 0 评论