首先是二叉树的结构部分:
#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef struct BiTreeNode{
ElemType m_chValue;
struct BiTreeNode *m_pLeft;
struct BiTreeNode *m_pRight;
} BiTNode, *BiTree;
接下来创建一棵一颗二叉树:
void CreateBiTree(BiTree *pRoot)
{
ElemType chVal;
scanf("%c",&chVal);
if(' ' == chVal){ //以空格代表子节点为空
*pRoot = NULL;
}
else{
*pRoot = (BiTree)malloc(sizeof(BiTNode));
(*pRoot)->m_chValue = chVal;
CreateBiTree(&(*pRoot)->m_pLeft);
CreateBiTree(&(*pRoot)->m_pRight);
}
}
二叉树的遍历及输出:
void VisitBiTree(BiTree pTemp)
{
printf("%c ",pTemp->m_chValue);
}
void PreOrderTraverse(BiTree pRoot)
{
if(pRoot){
VisitBiTree(pRoot);
PreOrderTraverse(pRoot->m_pLeft);
PreOrderTraverse(pRoot->m_pRight);
}
}
主程序:
int main(int argc, char* argv[])
{
BiTree pRoot = NULL;
CreateBiTree(&pRoot);
PreOrderTraverse(pRoot);
printf("\n");
return 0;
}
接下来输入测试数据,默认以前序遍历格式输出,空格代表无子节点。
本文介绍了一种使用 C 语言实现二叉树的方法,包括二叉树的基本结构定义、通过递归方式创建二叉树的过程以及前序遍历的实现。提供了完整的源代码示例,并展示了如何通过输入来构建特定的二叉树结构。
833

被折叠的 条评论
为什么被折叠?



