1 solutions
-
0
C :
#include <stdio.h> #include <stdlib.h> typedef struct TNode{ char data; struct TNode *left,*right; }TNode,*BTree; int index=0; char c[101]; void create(BTree *t){ if (c[index]=='#'||c[index]==' ') { index++; *t=NULL; }else{ *t=(TNode*)malloc(sizeof(TNode)); (*t)->data=c[index]; index++; create(&(*t)->left); create(&(*t)->right); } } void remove_tree(BTree t){ if (t) { remove_tree(t->left); remove_tree(t->right); free(t); } } void inorder(BTree t){ if (t) { inorder(t->left); printf("%c ",t->data); inorder(t->right); } } int main(){ BTree t; // freopen("1.txt","r",stdin); while (scanf("%s",c)!=EOF) { index=0; create(&t); inorder(t); remove_tree(t); printf("\n"); } // fclose(stdin); return 0; }
C++ :
#include <stdio.h> #include <stdlib.h> char cache[101]; typedef struct Node { char data; struct Node * lchild,* rchild; }; struct Node * root; int cnt; struct Node * Build_tree() { struct Node * root; if(cache[cnt++] == '#') root = NULL; else { root = (struct Node *)malloc(sizeof(struct Node)); root -> data = cache[cnt - 1]; root -> lchild = Build_tree(); root -> rchild = Build_tree(); } return root; } void in_order(struct Node *root) { if(root != NULL) { in_order(root -> lchild); printf("%c ",root -> data); in_order(root -> rchild); } } void clean(struct Node *root) { if(root != NULL) { clean(root -> lchild); clean(root -> rchild); free(root); } } int main() { int i; while(scanf("%s",cache) != EOF) { cnt = 0; root = Build_tree(); in_order(root); clean(root); printf("\n"); } return 0; }
Pascal :
program acmshuu; type piont=^node; node=record left:piont; root:char; right:piont; end; var n,ch:char; zh:piont; procedure init(zh:piont); var p:piont; begin read(ch); if ch='#' then zh^.left:=nil else begin new(p); zh^.left:=p; p^.root:=ch; init(p); end; read(ch); if ch='#' then zh^.right:=nil else begin new(p); zh^.right:=p; p^.root:=ch; init(p); end; end; procedure bianli(zh:piont); begin if zh^.left<>nil then bianli(zh^.left); write(zh^.root,' '); if zh^.right<>nil then bianli(zh^.right); end; begin while not eof do begin new(zh); read(n); zh^.root:=n; init(zh); readln; bianli(zh); writeln; end; end.
- 1
Information
- ID
- 567
- Time
- 1000ms
- Memory
- 32MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By