WORD格式可编辑 q->front=q->rear=0; }
int EmptyQueue(Queue *q)/*判断队列空*/ {
if(q->front==q->rear) return 1; else
return 0; }
int DeQueue(Queue *q) /*出队列*/ {
return (int)q->data1[q->front++]; }
void InQueue(Queue *q,int data) /*入队列*/ {
q->data1[q->rear++]=data; }
int IsHuiWen(stack *st,Queue *q,char * a) { {
int i,zhan,dui,k=0; //i计数,zhan代表应往栈里边传几个原素,dui代表应从第几个原素开始往队列传值,k计算数组a[]中有多少原素
while(a[k]!='\\0') k++; if(k%2==0) {
zhan=k/2; dui=k/2+1; }
if(k%2==1) {
zhan=k/2; dui=k/2+2; }
 for(i=0;i   push(st,a[i]);  }   for(i=zhan;i   InQueue(q,a[i]);                         专业知识分享                         WORD格式可编辑  }   for(i=0;i   if(pop(st)!=DeQueue(q))    return 0;  }   return 1; }  int main() {   char a[10]={'a','b','c','d','b','a'};  stack st;  Queue q;   init(&st);     initQueue(&q);         printf(\}    四、实验报告要求 1、撰写实验报告;  2、对实验中出现的问题和结果进行总结。                                           专业知识分享                         WORD格式可编辑                                   专业知识分享                         WORD格式可编辑 实验五  二叉树的遍历及应用  一、实验目的  1.掌握二叉树的定义;  2.掌握二叉树的基本操作,如二叉树的建立、遍历、结点个数统计、树的深度计算等。 二、实验内容  用递归的方法实现以下算法:  1.以二叉链表表示二叉树,建立一棵二叉树; 2.输出二叉树的中序遍历结果; 3.输出二叉树的前序遍历结果; 4.输出二叉树的后序遍历结果; 5.计算二叉树的深度; 6.统计二叉树的结点个数; 7、二叉树的层序遍历结果。  三、实验提示  1、//按要求将程序补充完整 #include  typedef struct BiTNode{  char data;   struct BiTNode *lchild,*rchild;  }BiTNode,*BiTree;    //二叉树的建立 BiTree Create(BiTree T) {   char ch;        scanf(\    if(ch=='#')T=NULL;  //设置一个接收数据的变量   //设置结束符      else{          T = (BiTree)malloc(sizeof(BiTNode)); //生成心节点         T->data = ch;             T->lchild = Create(T->lchild);         T->rchild = Create(T->rchild);     }      return T;  }   //二叉树的前序递归遍历   void Preorder(BiTree T) {   if(T)          //递归建立                         专业知识分享                         WORD格式可编辑  {   printf(\  Preorder(T->lchild);   Preorder(T->rchild);  } }   //统计二叉树的结点个数  int Sumleaf(BiTree T) {         int n;  if(T==NULL) return 0;  else  {   n=1+Sumleaf(T->lchild)+Sumleaf(T->rchild);  }  return n; }   //二叉树的中序递归遍历 void zhongxu(BiTree T) {       if(T)  {      Preorder(T->lchild);   printf(\  Preorder(T->rchild);  } }   //二叉树的后序递归遍历 void houxu(BiTree T) {       if(T)  {   Preorder(T->lchild);   Preorder(T->rchild);   printf(\ } }   //计算二叉树的深度 int Depth(BiTree T) {       //谁大选谁    int n;  if(T==NULL)                         专业知识分享