SDUT 2136 数据结构实验之二叉树的建立与遍历

来源:互联网 发布:华为网络盒子怎么样 编辑:程序博客网 时间:2024/04/27 23:41

点击打开题目链接

#include <bits/stdc++.h>using namespace std;struct node{    char data;    node *left, *right;};node *creat();char _string[60];int i = 0, num = 0;void Inorder(node *root);void Postorder(node *root);int high(node *root);int main(){    node *root;    scanf("%s", _string);    i = 0;    root = creat();    Inorder(root);    cout << endl;    Postorder(root);    cout << endl;    cout << num << endl;    cout << high(root) << endl;    return 0;}node *creat(){    node *root = new node;    if(_string[i] == ',')    {        root = NULL;        i ++;    }    else    {        root -> data = _string[i];        i ++;        root -> left = creat();        root -> right = creat();    }    return root;}void Inorder(node *root){    if(root)    {        Inorder(root -> left);        cout << root -> data;        Inorder(root -> right);    }}void Postorder(node *root){    if(root)    {        if(!root -> left && !root -> right)        {            num++;        }        Postorder(root -> left);        Postorder(root -> right);        cout << root -> data;    }}int high(node *root){    if(root)    {        int lifthigh = high(root -> left);        int righthigh = high(root -> right);        return max(lifthigh, righthigh)+1;    }    else return 0;}


0 0
原创粉丝点击