![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
qq_27080743
这个作者很懒,什么都没留下…
展开
-
先序创建二叉树
//定义二叉树结构typedef struct BiTreeNode{ char data; //结点存放的数据 BiTreeNode *lchild, *rchild; //树的左结点右结点指针}BiTreeNode, *BiTree; //BiTreeNode为结构体,BiTree为指向这个结构体的指针void Create...原创 2018-04-23 16:06:33 · 5870 阅读 · 0 评论 -
二叉树先序,中序,后序递归遍历
void PreOrderRecursionTraverse(BiTree T) //先序递归二叉树{ if(T == NULL) return; //T为NULL,退出 printf("%C", T->data); //先访问根结点 PreOr...原创 2018-04-23 16:25:31 · 210 阅读 · 0 评论 -
二叉树非递归先序和后序遍历
为什么要把先序和后序放在一起写,因为他们思路很相似啊1.先序非递归:1-1.定义一个栈1-2.树根入栈1-3.若栈不为空,栈顶出栈,访问栈顶,右孩子入栈,左孩子入栈(后入栈的先出,所以左孩子后入栈)1-4 一直循环,直到栈空void PreOrderUnrecursionTraverse(BiTree T) { if (T == NULL) return; //若树根为NULL,...原创 2018-04-23 18:39:03 · 697 阅读 · 0 评论 -
二叉树中序非递归
步骤:1.创建栈2.创建一个指针p,辅助遍历3.左子树循环入栈,直到最后一个结点没有左孩子4.读栈顶,出栈5.p指向p的右孩子void InOrderUncursionTravere(BiTree T) { BiTNode *stack[Maxsize]; //定义一个栈 int top = -1; BiTNode *p = T; //定义指针...原创 2018-04-23 18:55:02 · 355 阅读 · 0 评论 -
二叉树层次遍历
1.创建一个循环队列2.定义应该临时指针p,用于遍历3.树根入队4.p指向队头,读出对头,队头出队4.左子树,右子树入队5.循环自到队空void LevelTraverse(BiTree T) //层次遍历 { if(T == NULL) return; BiTNode *queue[Maxsize]; //创建应该队列 int ...原创 2018-04-24 18:28:33 · 363 阅读 · 1 评论