zoukankan      html  css  js  c++  java
  • 二叉树demo01

    简单的二叉树的创建(前序输入)&前序遍历&中序遍历&后序遍历

    #include <stdio.h> #include <stdlib.h> #define MAX 1024 typedef struct bitnode { int data; struct bitnode *lchild; struct bitnode *rchild; }BinTree; BinTree *Creat_Bintree() { BinTree *p; int x; scanf("%d",&x); if(x==0) { p = NULL; } else { p = (BinTree *)malloc(sizeof(BinTree)); p->data=x; p->lchild=Creat_Bintree(); p->rchild=Creat_Bintree(); } return p; } void PreOrderTraversal(BinTree *r) { if(r) { printf("%d ",r->data); PreOrderTraversal(r->lchild); PreOrderTraversal(r->rchild); } } void InOrderTraversal(BinTree *r) { if(r) { InOrderTraversal(r->lchild); printf("%d ",r->data); InOrderTraversal(r->rchild); } } void LastOrderTraversal(BinTree *r) { if(r) { LastOrderTraversal(r->lchild); LastOrderTraversal(r->rchild); printf("%d ",r->data); } } void NRPreOrder(BinTree *r) { BinTree *stack[MAX]; BinTree *p; int top =-1; if(r==NULL) return; p=r; while(p!=NULL||top!=-1) { while(p!=NULL) { printf("%d ",p->data); top++; stack[top]=p; p=p->lchild; } if(top<0) return; else { p=stack[top]; top--; p=p->rchild; } } } int main() { BinTree *root; root=Creat_Bintree(); printf("前序遍历:"); PreOrderTraversal(root); printf("\n中序遍历"); InOrderTraversal(root); printf("\n后序遍历"); LastOrderTraversal(root); printf("\n非递归前序遍历:"); NRPreOrder(root); return 0; }

    第一篇cnblog博文,开通博客审核通过,学生一枚,初来乍到。明天再改。。。

  • 相关阅读:
    ping
    android Handler总结
    配置网络测试环境的批处理
    shell 的选项解析
    [转] Linux 中共享库的搜索
    SecureCRT 脚本一则(0720.Rev.1)
    使用 Wget 完成自动 Web 认证(推 portal)
    shell 选项解析之需求一:多路径自动补全
    getopts 的简单模拟(09.12 Rev)
    ThinkPHP框架使用心得三 RBAC权限控制(2)简要原理
  • 原文地址:https://www.cnblogs.com/Andre/p/11909098.html
Copyright © 2011-2022 走看看