电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

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

C二叉树创建、前序遍历、中序遍历、后序遍历的递归与非递归实现以及层次遍历_第1页
1/11
C二叉树创建、前序遍历、中序遍历、后序遍历的递归与非递归实现以及层次遍历_第2页
2/11
C二叉树创建、前序遍历、中序遍历、后序遍历的递归与非递归实现以及层次遍历_第3页
3/11
二叉树创建、前序遍历、中序遍历、后序遍历 的 递归与非递归实现 以及 层次遍历 二叉树的创建: #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_recursive2(t); printf(" Inorder_recursive2\n"); Postorder(t); printf(" Postorder\n"); Postorder_recursive(t); printf(" Postorder_recursive\n"); LevelOrder(t); printf(" LevelOrder\n"); */ getchar(); getchar(); return 0; } 二叉树的 前序遍历,递归、非递归的实现: /* 前序遍历的递归实现 */ void preorder(BTNode *bt) { if (bt) { printf("%c ",bt->data); preorder(bt->lchild); preorder(bt->rchild); } } /* 前序遍历的非递归实现 */ void preorder_recursive(BTNode *bt) { BTNode* p; BTNode* s[MAXNUM+1]; /* 辅助的模拟栈 */ int top; p=bt; top=-1; while(p||top != -1) { if(p) { printf("%c ",p->data); ++top; s[top]=p; p=p->lchild ; } /*p移向左孩子*/ else /*栈非空*/ { p=s[top]; --top; p=p->rchild; } } }...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部