博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树的创建与遍历
阅读量:7071 次
发布时间:2019-06-28

本文共 1061 字,大约阅读时间需要 3 分钟。

   使用孩子链表表示法表示数,采用广义表的形式输入:

#define ms 5//数的度typedef struct node{//树的孩子链表表示法	char data;	node* p[ms];}*Tree;void createTree(Tree& tree,char* p){	tree=NULL;	Tree stack[ms],currentNode;//stack记录当前层次对应的双亲节点	int d[ms];//记录	int i=0,top=0;	while(p[i]){		switch(p[i]){		    case ' ':break;			case'(':				top++;//层次+1				stack[top]=currentNode;//当前层次所属的双亲节点				d[top]=0;//当前层次至少一个孩子节点				break;			case')':				top--;//层次-1,一个层次结束				break;			case',':				d[top]++;stack[top]为双亲所对应的孩子数				break;			default:				//创建节点				if((currentNode=(Tree)malloc(sizeof(node)))){				     currentNode->data=p[i];			         for(int j=0;j
p[j]=NULL; } //连接第d[top]个孩子与其双亲节点stack[top] if(!tree) tree=currentNode; else stack[top]->p[d[top]]=currentNode; } i++; }}//数的输出void printTree(Tree tree){ if(tree){ cout<
data; if(tree->p[0]){ cout<<"("; printTree(tree->p[0]); for(int i=1;tree->p[i]&&i<5;i++){ cout<<","; printTree(tree->p[i]); } cout<<")"; } }}

转载于:https://www.cnblogs.com/engineerLF/p/5393054.html

你可能感兴趣的文章
腾讯织云API平台:结合DevOps理念的一次新实践
查看>>
零长度数组意义
查看>>
Maven项目pom.xml文件报错“web.xml is missing and <failOnMissingWebXml> is set to true”
查看>>
docker入门之简单的容器使用
查看>>
系统架构相关概念辨析(一)
查看>>
关于java加密
查看>>
thinkphp3.2的行为
查看>>
PHP中使用Redis接管文件存储Session详解
查看>>
前后端如何优化网站性能
查看>>
js bind实现
查看>>
Araxis Merge的help
查看>>
cacti的基本应用
查看>>
MYSQL错误代码集
查看>>
Centos7 命令总结
查看>>
lufylegend HTML5开源框架基本操作
查看>>
startActivityForResult备忘
查看>>
android webrtc使用opensl es
查看>>
spring mvc restful + json 测试代码(一)
查看>>
在控制台程序中使用MFC类
查看>>
用enum类型数据解决switch case选择字符串的问题
查看>>