【数据结构】和我一起初探数据结构——二叉树
【数据结构】和我一起初探数据结构——二叉树
- 树的定义
- 遍历二叉树
- 算法——二叉树
- 测试
- 完结
树的定义
树(Tree)是n(n>=0)个结点的有限集, 它为空树(n = 0);或为非空树 ,对于非空树T ;
1,有且仅有一个特定的称为根(root)的结点;
2,除结点以外的其余结点可分为m个互不相交的有限集T1,T2,其中每一个集合本身又是一棵树 成为树根。
总结: 树根 + 子树(子树又是一棵树 称之为递归)
遍历二叉树
DLR:(先序遍历)
1,访问根结点
2,先序遍历左子树
3,先序遍历右子树
LDR:(中序遍历)
1,中序遍历左子树
2,访问根结点
3,中序遍历右子树
LRD:(后序遍历)
1,后序遍历左子树
2,后序遍历右子树
3,访问根结点
算法——二叉树
#include
#include
struct btnode{char data;struct btnode *lchild;struct btnode *rchild;
};
//前序
void peroder(struct btnode *bt){if(bt !=NULL){printf("%c",bt->data);//先访问根结点peroder( bt->lchild);//访问左结点peroder( bt->rchild);//访问右节点}
}
//中序
void miroder(struct btnode *bt){if(bt!=NULL){miroder( bt ->lchild);printf("%c",bt->data);miroder( bt ->rchild);}
}
//后序
void heroder(struct btnode *bt){if(bt!=NULL){heroder( bt ->lchild);heroder( bt ->rchild);printf("%c",bt->data);}
}
//创建二叉数struct btnode *create(struct btnode *bt){char ch;scanf("%c",&ch);if(ch =='#') bt = NULL;else{bt = (struct btnode*) malloc(sizeof(struct btnode));bt ->data = ch;bt ->lchild = create(bt->lchild);bt ->rchild = create(bt->rchild);}return bt; }int main(){struct btnode *bt,T;bt = &T;bt = create(bt);miroder(bt);return 0;}
测试
我们要利用中序遍历如下二叉树

从控制台输入:
使用中序遍历的思想:AB##C##
运行如下:

完结
本篇文章只是自己学习笔记,如对你有帮助可关注我,后续更新完数据结构
关于我:
好物分享:
html5 看这一篇就够了!!!!.
零基础入门前端《一》.
零基础入门前端《二》.
零基础入门前端《三》.
我是凉心姑娘,欢迎来我的博客!你的一个赞👍,是我写下去的动力!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
