二叉树的基本操作(非递归)
来源:互联网 发布:莅阳长公主知乎 编辑:程序博客网 时间:2024/06/06 03:55
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 20typedef struct node{ char data; node * lchild; node * rchild;}BTree;typedef struct{ BTree * data[MAXSIZE]; int top;}SeqStack;BTree * create(BTree * p){ char ch; scanf("%c",&ch); if(ch != ' '){ p = (BTree *)malloc(sizeof(BTree)); p->data = ch; p->lchild = create(p->lchild); p->rchild = create(p->rchild); return p; }else{ return NULL; }}void preorder(BTree * p,SeqStack * s){ while(p != NULL || s->top > -1){ if(p!=NULL){ s->top++; printf("%4c",p->data); s->data[s->top] = p; p = p->lchild; }else{ p = s->data[s->top]; s->top--; p = p->rchild; } }}void inorder(BTree * p,SeqStack * s){ while(p != NULL || s->top != -1){ while(p!=NULL){ s->top++; s->data[s->top] = p; p = p->lchild; } if(s->top != -1){ p = s->data[s->top]; printf("%4c",p->data); s->top--; p = p->rchild; } } }void postorder(BTree * p,SeqStack * s){ BTree * visited = NULL; while(p != NULL || s->top > -1){ while(p != NULL){ s->top++; s->data[s->top] = p; p = p->lchild; } p = s->data[s->top]; if(p->rchild == NULL || p->rchild == visited){ printf("%4c",p->data); visited = p; s->top--; p = NULL; }else{ p = p->rchild; } }}int main(){ SeqStack * s = (SeqStack *)malloc(sizeof(SeqStack)); s->top = -1; BTree * p; p = create(p); printf("preorder:\n"); preorder(p,s); printf("\n"); printf("inorder:\n"); inorder(p,s); printf("\n"); printf("postorder:\n"); postorder(p,s); printf("\n"); return 0;}
0 0
- 二叉树的基本操作(非递归)(修改)
- 二叉树的基本操作(非递归)
- C++实现二叉树的基本操作(递归+非递归)
- 二叉树的创建和基本操作(递归和非递归)
- 二叉树的基本操作实现(递归和非递归)
- 二叉树的基本操作(递归)
- 二叉树基本操作递归和非递归方法
- 数据结构——排序/搜索二叉树(非递归)的基本操作实现
- C语言实现二叉树的递归和非递归算法的基本操作
- 二叉树的基本操作(创建、递归和非递归遍历、求深度、求叶子数)
- C++递归创建、非递归遍历二叉树的基本操作
- 二叉树的基本操作(非递归前中后遍历,先序,表达式建树,复制二叉树)
- C++实现二叉搜索树基本操作(递归+非递归+应用)
- 二叉查找树的非递归操作
- 二叉树的非递归遍历操作
- 二叉树的遍历 非递归操作
- 二叉树非递归的操作
- ~二叉树的非递归遍历操作~
- 你知道老司机吗,这里带你飘逸
- [知其然不知其所以然-22] What's inside the pm_trace
- html5 在Android 开发中的应用
- C语言位运算总结
- ps图片处理
- 二叉树的基本操作(非递归)
- jdk1.5、1.6、1.7新特性详细介绍
- 浅聊 ConcurrentHashMap 原理
- C语言转义字符总结
- 四元数
- js/javascript正则表达式中/g /i /m
- CSV解析器,CSV解释器,新媒传信上机题,新媒传信面试,java解析csv
- qemu的virtqueue实现
- 关于函数的几点思考