二叉树相关代码记录
Posted 名叫丁小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树相关代码记录相关的知识,希望对你有一定的参考价值。
二叉树的应用: #include <stdio.h> #include<malloc.h> typedef struct node { char data; struct node *lchild; struct node *rchild; }BinTNode; //创建二叉树 BinTNode *createBinTree(){ BinTNode *t; char ch; ch=getchar(); if(ch==’0’) t=null; else{ t=(BinTNode *)malloc(sizeof(BinTNode)); t->data=ch; t->lchild=createBinTree(); t->rchild=createBinTree(); } return t; } //广义表的形式输出二叉树 void ListBinTree(BinTNode *t){ printf(“%c”,t->data); if(t->lchild!=NULL||t->rchild!=NULL){ printf(“(”); ListBinTree(t->lchild); if(t->rchild!=NULL){ printf(“,”); ListBinTree(t->rchild); printf(“)”); } } } //二叉树的先序遍历 void preOrder(BinTNode *t){ if(t!=NULL){ printf(“%3c”,t->data); preOrder(t->lchild); preOrder(t->rchild); } } //求二叉树的叶子结点 void getBinTreeLeaf(BinTNode *t){ if(t->lchild==NULL&&t->rchild==NULL){ printf(“%3c”,t->data); getBinTreeLeaf (t->lchild); getBinTreeLeaf (t->rchild); } //求二叉树的深度(高度) void getBinTreeHeight(BinTNode *t){ int height; int hrchild; int hlchild; if(t==NULL) return 0; else{ hlchild= getBinTreeHeight(t-hlchild); hrchild= getBinTreeHeight(t-hrchild); height=hlchild>hrchild?hlchild+1:hrchild+1; printf(“%d”,height);
} } } void main(){ BinTNode t=NULL; printf(“请输入先序序列,虚节点用0表示:”); t=creatBinTree(); printf(“广义表表示的输出:\n”); listBinTree(t); printf(“\n二叉树的先序遍历结果:”); preOrder(t); printf(“\n”); printf(“二叉树的叶子结点为:\n”); getBinTreeLeaf (t); printf(“二叉树的高度为:\n”); getBinTreeHeight(t); } } |
以上是关于二叉树相关代码记录的主要内容,如果未能解决你的问题,请参考以下文章