- 论坛徽章:
- 0
|
现在改好了,自己试了下,不知道是不是还有问题。
谢谢各位!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct Tnode {
- struct Tnode * left;
- struct Tnode * right;
- int tag;
- char data;
- }* node;
- void CreateBintree(node Lnode)
- {
- char e;
- e = getchar();
- getchar();
- if (e == '.') {
- Lnode -> tag = 0;
- printf ("Lnode tag : %d \n", Lnode -> data);
- return;
- }
- else Lnode -> tag = 1;
- Lnode -> data = e;
- printf ("Lnode.data : %c\n", Lnode -> data);
- Lnode -> left = (node) malloc (sizeof(struct Tnode));
- CreateBintree(Lnode -> left);
- printf ("Create left\n");
- Lnode -> right = (node) malloc (sizeof(struct Tnode));
- CreateBintree(Lnode -> right);
- printf ("Create right\n");
- return;
- }
-
- void PreBintree(node Lnode)
- {
- if (!Lnode->tag) return;
- printf (" %c ",Lnode -> data);
- PreBintree(Lnode -> left);
- PreBintree(Lnode -> right);
- return;
- }
- void MidBintree(node Lnode)
- {
- if (!Lnode->tag) return;
- PreBintree(Lnode -> left);
- printf (" %c ",Lnode -> data);
- PreBintree(Lnode -> right);
- return;
- }
- void PastBintree(node Lnode)
- {
- if (!Lnode->tag) return;
- PreBintree(Lnode -> ritht);
- PreBintree(Lnode -> left);
- printf (" %c ",Lnode -> data);
- return;
- }
- int main (void)
- {
- char * hello="Hello,World! Now , It is bintree!";
- printf ("%s\n",hello);
- node Bintree = (node) malloc (sizeof(struct Tnode));
- printf ("malloc Bintree complete! \n");
- CreateBintree(Bintree);
- printf ("\nPre Order:\t");
- PreBintree(Bintree);
- printf ("\nMid Order:\t");
- MidBintree(Bintree);
- printf ("\nPast Order:\t");
- PastBintree(Bintree);
- printf ("\n");
- return 0;
- }
复制代码 |
|