数据结构树状结构链式二叉树
链式二叉树:
遍历:
- 前序
- 中序
- 后序
下面是具体实现:
1.前序遍历:
void PreTraverseLTree(struct LTNode *pT)
{if(pT!=NULL){cout<<pT->data<<'\t';if(pT->pLchild!=NULL)PreTraverseLTree(pT->pLchild);if(pT->pRchild !=NULL)PreTraverseLTree(pT->pRchild);}
}
2.中序遍历:
void InTraverseLTree(struct LTNode *pT)
{if(pT!=NULL){if(pT->pLchild!=NULL)InTraverseLTree(pT->pLchild);cout<<pT->data<<'\t';if(pT->pRchild !=NULL)InTraverseLTree(pT->pRchild);}
}
3.后序遍历:
void PostTraverseLTree(struct LTNode *pT)
{if(pT!=NULL){if(pT->pLchild!=NULL)PostTraverseLTree(pT->pLchild);if(pT->pRchild !=NULL)PostTraverseLTree(pT->pRchild);cout<<pT->data<<'\t';}
}
------》源代码:
#include<iostream>
#include<malloc.h>
using namespace std;//结构描述:
struct LTNode
{char data;struct LTNode *pLchild;struct LTNode *pRchild;
};//初始化:
struct LTNode *CreatLTree()
{struct LTNode *pA=(struct LTNode *)malloc(sizeof(struct LTNode ));struct LTNode *pB=(struct LTNode *)malloc(sizeof(struct LTNode ));struct LTNode *pC=(struct LTNode *)malloc(sizeof(struct LTNode ));struct LTNode *pD=(struct LTNode *)malloc(sizeof(struct LTNode ));struct LTNode *pE=(struct LTNode *)malloc(sizeof(struct LTNode ));pA->data='A';pB->data='B';pC->data='C';pD->data='D';pE->data='E';pA->pLchild =pB;pA->pRchild=pC;pB->pLchild=pB->pRchild=NULL;pC->pLchild=pD;pC->pRchild=NULL;pD->pLchild =NULL;pD->pRchild=pE;pE->pLchild=pE->pRchild=NULL;return pA;
};//1.前序遍历:
void PreTraverseLTree(struct LTNode *pT)
{if(pT!=NULL){cout<<pT->data<<'\t';if(pT->pLchild!=NULL)PreTraverseLTree(pT->pLchild);if(pT->pRchild !=NULL)PreTraverseLTree(pT->pRchild);}
}//2.中序遍历:
void InTraverseLTree(struct LTNode *pT)
{if(pT!=NULL){if(pT->pLchild!=NULL)InTraverseLTree(pT->pLchild);cout<<pT->data<<'\t';if(pT->pRchild !=NULL)InTraverseLTree(pT->pRchild);}
}//3.后序遍历:
void PostTraverseLTree(struct LTNode *pT)
{if(pT!=NULL){if(pT->pLchild!=NULL)PostTraverseLTree(pT->pLchild);if(pT->pRchild !=NULL)PostTraverseLTree(pT->pRchild);cout<<pT->data<<'\t';}
}int main()
{struct LTNode *pT=CreatLTree();cout<<"前序遍历:"<<endl;PreTraverseLTree(pT);cout<<endl;cout<<"中序遍历:"<<endl;InTraverseLTree(pT);cout<<endl;cout<<"后序遍历:"<<endl;PostTraverseLTree(pT);cout<<endl;return 0;
}
树中最常见的结构就是二叉树结构了,因为其独特的结构和存储方式在今后很多
的算法设计中都有涉及,应用范围也很广。这里给大家介绍的是二叉树最基础的链式遍历,在今后还会有很多拓展和应用,那些是相对比较复杂的内容。还有在树的遍历时,我们一般采用递归算法(虽然效率低,但设计简洁啊!)。
数据结构树状结构链式二叉树相关推荐
- 顺序二叉树(堆)与链式二叉树的C语言实现
文章目录 树的概念及结构 树的概念 树的相关概念 树的表示 树在实际中的运用 二叉树的概念及结构 二叉树的概念 现实中的二叉树 特殊的二叉树 二叉树的性质 二叉树的存储结构 二叉树的顺序结构及实现 二 ...
- 数据的逻辑结构(线性结构、非线性结构;集合结构、树状结构、网状结构),数据的存储结构(顺序结构、链式结构、索引结构、散列结构)
数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑关系(和实现无关). 分类1:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继. ...
- 数据的逻辑结构(线性结构、非线性结构;集合结构、线性结构、树状结构、网状结构),数据的存储结构(顺序结构、链式结构、索引结构、散列结构)
数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑关系(和实现无关). 分类1:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继. ...
- unity实现GalGame式的树状结构关系链
unity实现GalGame式的人物关系链 写在开头:我参加了2021 Global Gamejam全球游戏设计比赛 经过全员讨论最后决定根据主题<Lost and Found>做一个失物 ...
- Python 数据结构 之 串 的链式存储结构
本文所采用的数据结构模板为 <数据结构教程>C语言版,李春葆.尹为民等著. 改篇所涉及到的是 串 的链式存储结构. 用Python仿照C语言来实现. 文章转载请注明: Python 数据 ...
- mysql树状数据结构_树状结构的数据表如何设计?
使用Modified Preorder Tree简直是必须的.网上可以搜一下modified preorder tree travesal找到相关资料.参考 http://www.sitepoint. ...
- 二叉树(二)----->链式二叉树(上)
文章的主体内容 1.链式二叉树链式二叉树的表示法 2.二叉树的前中后序遍历思想 3.求二叉树节点的个数及叶子节点的个数及第k层节点数 5.查找二叉树值为x的节点 6.二叉树的层序遍历 7.二叉树的深度 ...
- 从装备合成谈树状结构的应用
源码下载: 链接: https://pan.baidu.com/s/1DucpIik596W1pkY09FjUew 提取码: n8mq 其中有个文件"类的功能介绍.txt",介绍了 ...
- 树状结构大数据类型的高效支持
树状结构大数据类型的高效支持 陈世敏 中国科学院计算技术研究所,北京 100190 摘要:传统的关系数据模型难以满足大数据应用日益丰富的数据表达和处理的需求,因此实践中涌现了多种非传统的大数据类型.其 ...
最新文章
- jquery对象PHP转换,jQuery对象与DOM对象转换方法详解_jquery
- Jenkins - 构建Allure Report
- 什么是进程控制块,他有什么用?
- VTK:Points之PoissonExtractSurface
- c#与mysql数据库连接以及.net framework版本修改问题
- 卓同学的 Swift 面试题
- R中Factor类型选取子集
- java etcd api_在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听...
- mouseover和mouseout多次触发解决方法(兼容ie和firefox)(转)
- mysql将查到的数据删除_MySQL基本SQL语句之数据插入、删除数据和更新数据 | 旺旺知识库...
- JAVA 中的null
- Java 用HTTP的方式发送JSON报文请求
- 百度web前端面试2015.10.18
- 解决导入Beautifulsoup 报错 AttributeError: 'module' object has no attribute '_base'的问题
- Socket和TcpClient
- Unity 基础数据库操作( Myspl 和 PostgreSQL)
- 华硕显卡驱动怎么安装?
- JavaScript hash 与 history 实现客户端路由的原理
- imageJ二次开发之旅 – imageJ开源项目介绍
- Windows 8 的程序兼容性助手方案详述