⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4.1.c

📁 自己写的数据结构课程程序
💻 C
字号:
#define NULL 0
#include<stdio.h>
struct BiTNode
{char data;
 struct BiTNode *lchild,*rchild;
};
struct Node
{struct BiTNode *bitnode;
 struct Node *next;
};
struct Stack
{struct Node *base,*top;
};
struct BiTNode *p;
struct Stack S;
struct BiTNode *CreatBitree(struct BiTNode *T)
{char c;
 scanf("%c",&c);
 if(c==' ')
   T=NULL;
 else
   {T=(struct BiTNode*)malloc(sizeof(struct BiTNode));
    T->data=c;
    T->lchild=CreatBitree(T->lchild);
    T->rchild=CreatBitree(T->rchild);
   }
 return T;
}
void Visit(int elem)
{printf("%c",elem);
}
void InitStack()
{S.base=S.top=NULL;
}
void Push(struct BiTNode *t)
{struct Node *p;
 p=(struct Node *)malloc(sizeof(struct Node));
 p->next=NULL;
 S.top->bitnode=t;
 S.top->next=p;
 S.top++;
}
int StackEmpty()
{if(S.top==S.base)
   return 1;
 else
   return 0;
}
int GetTop()
{if(S.top==S.base)
   return 0;
 else
   {p=(S.top-1)->bitnode;
    return 1;
   }
}
void Pop()
{p=(--S.top)->bitnode;
}
void InOrderTraverse(struct BiTNode *T)
{InitStack();
 Push(T);
 while(!StackEmpty())
  {while(GetTop()&&p)
     Push(p->lchild);
   Pop();
   if(!StackEmpty())
   {Pop();
    Visit(p->data);
    Push(p->rchild);
   }
  }
}
void main(void)
{struct BiTNode *T;
 T=CreatBitree(T);
 InOrderTraverse(T);
 getchar();
 getchar();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -