C二叉树创建、前序遍历、中序遍历、后序遍历的递归与非递归实现以及层次遍历.pdfVIP

  • 3
  • 0
  • 约8.43千字
  • 约 11页
  • 2021-12-11 发布于河北
  • 举报

C二叉树创建、前序遍历、中序遍历、后序遍历的递归与非递归实现以及层次遍历.pdf

二叉树创建、前序遍历、中序遍历、后序遍历 的 递归与非递归实现 以及 层次遍 历 二叉树的创建: #include stdio.h typedef char ElemType; #define MAXNUM 150 /* 二叉树结点定义 */ typedef struct BTNode { ElemType data ; /* data field */ struct BTNode * lchild ; struct BTNode * rchild ; } BTNode; /* 辅助的二叉树索引数组 */ BTNode* p[ MAXNUM+1]; /* 根据用户输入创建二叉树 */ /* 二叉树结点信息:数据域,以及在完全二叉树中的索引值 */ BTNode* Create_BiTree ( void ) { BTNode * t = NULL; int i ; int j ; char ch ; printf ( \n enter i, ch : ); scanf ( %d,%c, i , ch); while ( i != 0 ch != # ) { BTNode * s = ( BTNode*) malloc ( sizeof ( BTNode)); s - data = ch ; s - lchild = s - rchild = NULL; p [ i ] = s ; if ( i == 1 ) t = s ; else { j = i / 2; if ( i %2 == 0 ) p [ j ]- lchild = s ; else p [ j ]- rchild = s ; } printf ( \n enter i, ch : ); scanf ( %d,%c, i , ch); } return t ; } int main ( void ) { BTNode * t ; t = Create_BiTree (); /* preorder(t); printf( preorder\n); preorder_recursive(t); printf( preorder_recursive\n); Inorder(t); printf( Inorder\n); Inorder_recursive1(t); printf( Inorder_recursive1\n); Inorder_r

文档评论(0)

1亿VIP精品文档

相关文档