二叉树的创建与遍历
薇鹅鹅莉特
这个作者很懒,什么都没留下…
展开
-
非递归遍历二叉树
我们利用栈来实现遍历二叉树 二叉树的创建依然是通过递归实现的,此外我们需要建立一个链栈来压入或弹出每一个元素 先序遍历 1.进栈之前先访问该结点,visit(); 2.再继续找其左孩子,直到为NULL为止,然后出栈该元素 3.再判断刚刚出栈元素有没有右孩子,若没有,则继续出栈;若有,则先访问,再进栈 4.若没有右孩子,则出栈;若有,则先访问,再进栈 5.循环下去... void preOrder(TreeNode* T) { //因为要遍历树,所以设置工作指针 TreeNode* no原创 2021-08-07 17:03:32 · 81 阅读 · 0 评论 -
二叉树的创建与遍历
我们依然通过结构体来定义它的结点结构;分为数据域,指向左孩子的指针(指向左结构体),指向右孩子的指针(指向右结构体) 二叉树的结点结构 typedef char Type;//Type是自己定义的数据类型 //二叉链表存储结构 typedef struct TreeNode { Type data; struct TreeNode* Lchild; struct TreeNode* Rchild; }TreeNode; 创建一个二叉树 我们需要改变指针所指向的数据,并且递归会跳出函数,所以原创 2021-07-23 16:39:32 · 127 阅读 · 2 评论