先序输出二叉树节点

mac2026-05-18  1

#include "bitree.h" void PreOrder(BiTree root) /*先序遍历二叉树, root为指向二叉树根结点的指针*/ { if (root!=NULL) { printf("%c ",root ->data); /*输出结点*/ PreOrder(root ->LChild); /*先序遍历左子树*/ PreOrder(root ->RChild); /*先序遍历右子树*/ } } void main() { BiTree T; printf("按扩展先序遍历序列建立二叉树,请输入序列:\n"); CreateBiTree(&T); printf("先序遍历输出序列为:"); PreOrder(T); getch(); }

bitree.h

#include <stdio.h> #include <malloc.h> #include <conio.h> typedef char DataType; typedef struct Node { DataType data; struct Node *LChild; struct Node *RChild; }BiTNode, *BiTree; void CreateBiTree(BiTree *bt) { char ch; ch = getchar(); if(ch=='.') *bt=NULL; else { *bt=(BiTree)malloc(sizeof(BiTNode)); //生成一个新结点 (*bt)->data=ch; CreateBiTree(&((*bt)->LChild)); //生成左子树 CreateBiTree(&((*bt)->RChild)); //生成右子树 } }
最新回复(0)