用顺序存储结构来存储一颗具有n个结点的二叉树,编写算法实现对该二叉树进行先序遍历,输出先序遍历序列。,用c语言实现
时间: 2023-06-13 12:08:45 浏览: 133
以下是用C语言实现的代码:
```c
#include <stdio.h>
#define MAXSIZE 100
typedef char ElemType;
// 二叉树结点定义
typedef struct BiTNode {
ElemType data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
// 先序遍历
void PreOrderTraverse(BiTree T) {
if (T == NULL) {
return;
}
printf("%c ", T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
// 创建二叉树
void CreateBiTree(BiTree *T) {
char ch;
scanf("%c", &ch);
if (ch == '#') {
*T = NULL;
} else {
*T = (BiTree) malloc(sizeof(BiTNode));
(*T)->data = ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
int main() {
BiTree T;
printf("请输入先序遍历序列,用#表示空结点:\n");
CreateBiTree(&T);
printf("先序遍历序列为:");
PreOrderTraverse(T);
printf("\n");
return 0;
}
```
其中,CreateBiTree()函数用来创建二叉树,PreOrderTraverse()函数用来进行先序遍历。在主函数中,先调用CreateBiTree()函数创建二叉树,然后调用PreOrderTraverse()函数进行先序遍历并输出先序遍历序列。
阅读全文