C语言建树和操作树的定义和函数吗?

C语言建树和操作树的定义和函数吗?


互换的青春
浏览 1246回答 4
4回答

拉莫斯之舞

C语言和C++标准库都不提供对数据结构的支持. C++的标准模板库提供对一些数据结构的支持.树是一种比较基本的数据结构, 建树和遍历可以用递归实现, 但一般不推荐用递归, 可以用循环+栈完成.

湖上湖

大多数问题是函数名字写错 了。#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0#define OVERFLOW -1typedef int Status;typedef char TElemType;typedef struct BiTNode{TElemType data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;Status CreateBitree(BiTree T);Status PreOrder(BiTree T);Status InOrder(BiTree T);Status CreateBitree(BiTree T){char ch;scanf("%c",&ch);if(ch=='#')T=NULL;else{T=(BiTree)malloc(sizeof(BiTNode));if(!T);exit(OVERFLOW);T->data=ch;CreateBitree(T->lchild);CreateBitree(T->rchild);}return OK;}Status PreOrder(BiTree T){if(T){printf("%c",T->data);PreOrder(T->lchild);PreOrder(T->rchild);}return OK;}Status InOrder(BiTree T){if(T){InOrder(T->lchild);printf("%c",T->data);InOrder(T->rchild);}return OK;}Status PostOder(BiTree T){if(T){PostOder(T->lchild);PostOder(T->rchild);printf("%c",T->data);}return OK;}int main(){BiTree T={'\0'};printf("先序建树:依次输入二叉树结点号,孩子为空时输入空格\n");CreateBitree(T);printf("\n先序遍历二叉树为:");PreOrder(T);printf("\n中序遍历二叉树为:");InOrder(T);printf("\n后序遍历二叉树为:");PostOder(T);return 0;}

繁花不似锦

#include"stdio.h"#include"malloc.h"typedef struct bitnode{char data;struct bitnode *lchild,*rchild;}bintnode,*bintree;bintree createbitree(){bintree t;char ch;scanf("%c",&ch);if(ch==' ')t=NULL;else{t=(bintnode *)malloc(sizeof(bintnode));t->data=ch;t->lchild=createbitree();t->rchild=createbitree();}return(t);}这就是建树的函数 要实现什么你自己在写。。。
打开App,查看更多内容
随时随地看视频慕课网APP